简介
用户程序必须先经过编译才能在 CPU 中执行。每次进行更改后都需要重新编译程序。
编译期间会执行以下步骤:
检查用户程序的语法错误。
将从用户程序中删除不需要的指令。
检查被编译块中的所有块调用。如果更改了被调用块的接口,则会在信息窗口的“编译”(Compilation) 选项卡中显示错误信息。必须先更正这些错误。
块在用户程序中的编号不能重复。如果多个块具有相同的编号,在编译过程中将对编号冲突的块自动重新编号。在以下情况下将不对块重新编号:
无法通过自动重新编号解决的编号冲突必须手动更正。请注意巡视窗口中针对此问题的消息。
说明
重新编号专有技术保护块
仅 S7-1500 和 S7-1200 (V4) 系列 CPU 支持对无密码的专有技术保护块进行自动重新编码和手动重新编码。专有技术保护功能必须通过 TIA Portal V13 SP1 或更高版本进行设置。
块被单独选中或者随其它块一起选中进行编译。
在块的属性中将编号分配设置为“手动”(manual)。
后,将用户程序编译成 CPU 可读取的代码。
编译方法
可在以下窗口或编辑器中启动编译:
在项目树中编译块
用于编译单个块或同时编译“程序块”文件夹中的一个或多个块。
在程序编辑器中编译块
该选项用于编译单个打开的块。
在调用结构或从属性结构中编译块
用于编译个别的块。
编译选项
如果要在项目树中编译块,可选择更多选项:
软件(仅更改)
将编译所选块中的所有程序更改。如果已选择了块文件夹,那么将编译该文件夹中包含的块的所有程序变更。
软件(编译所有块)
编译所有块。建议在次编译时以及在进行了重大修订后执行此操作。
软件(重置预留存储器)
所选块接口的预留区域中声明的所有变量都将移动到接口的标准区域中。现在,存储器预留区域可用于进行接口扩展。
说明
该选项仅适用于 S7-1500 和 S7-1200 V4 及更高版本系列的 CPU。
一致性检查
更改被调用块的接口或使用的 PLC 数据类型,可以导致在调用块和被调用块之间;或者发生 PLC 数据类型与使用这些数据类型的全局 PLC 数据块之间不一致的情况。
为了避免用户程序出现此类不一致情况,在每次执行编译前系统自动执行一致性检查。比较时间戳,然后根据比较的结果执行或取消编译。
仅当被调用块接口的时间戳记早于调用块对应的时间戳记时,才能编译调用块。
仅当基于 PLC 数据类型的全局数据块的时间戳记晚于此 PLC 数据类型的时间戳记时,才能正确编译该全局数据块。
仅当背景数据块接口的时间戳记与所分配的函数块对应的时间戳记相同时,才能正确编译该背景数据块。
如果取消编译过程,则在巡视窗口中将显示一条报警。更新相关块中的块调用和全局数据块中的 PLC 数据类型,然后重启编译。通过一致性检查还可找到不能编译的专有技术保护的块。在巡视窗口中也将显示相应消息。
若立即开始加载,而不是首先编译,则所选块会自动编译,并显式更新块调用和全局数据块。请注意,各 CPU 系列之间具有以下区别:
S7-1200/1500:所有受影响的块都加载,以保证不会造成不一致性。
S7-300/400:仅加载所选块。
更正编译错误
在巡视窗口的“信息” >“编译”中,可查看编译是否成功或在程序中是否检测到错误。如果发生错误,则需要进行更正,然后重新启动编译。
步骤
要修正编译错误,请按以下步骤操作:
在巡视窗口中使用“信息” >“编译” 打开错误列表。
如果存在错误,则单击错误文本旁的蓝色问号,可获得有关解决该问题的信息。
双击要更正的错误。
相应的错误将高亮显示。
更正错误。
重新启动编译。