西门子PLC S7系列SCL编程语言
STL语言属于s7 300/400的编程语言,已经不适用与s7 1500编程。
S7-1200 和 S7-1500 提供两种不同的背景数据块访问选项,可在调用函数块时分配给函数块:
● 可优化访问的数据块
可优化访问的数据块无固定的定义结构。声明元素仅在声明中包含一个符号名,且块中没有固定地址。
● 可一般访问的数据块(与 S7-300/400 兼容)
可一般访问的数据块具有固定的结构。声明元素在声明中包含一个符号名,并且在块中有固定地址。
参数 REQ
输入参数 REQ (request) 仅适用于启动作业:
● 通过将输入参数 REQ 设置为“1”触发该作业(第 1 种情况)。
● 如果已启动了某一特定作业,但在未完成时又再次调用该指令执行相同的作业(例如,
在循环中断 OB 中),则该指令不会检测 REQ(第 2 种情况)。
● 如果该作业执行完成,但输入参数 REQ 仍设置为“1”,则该作业将立即再次启动。
输出参数 RET_VAL 和 BUSY 用于指示作业状态
● 在第 1 种情况中(通过 REQ = 1 进行首次调用),如果系统资源输入参数且输入参数正确,则 RET_VAL 中会输入代码 W#16#7001,同时将 BUSY 置位为“1”。
如果所需系统资源当前正在使用或输入参数错误,则 RET_VAL 中将输入相应的错误代码,同时 BUSY 的值为“0”。
● 在第 2 种情况中(中间调用),将在 RET_VAL 中输入代码 W#16#7002(与“调用仍在进行”的消息相对应),同时将 BUSY 置位为“1”。
● 以下规则适用于对作业的最后一次调用:
– 对于指令“DPNRM_DG”,如果数据传输无错误,则以整数形式在RET_VAL 中输入传输的数据长度(以字节为单位)。此时, BUSY 的值为“0”。如果传输有错误,将在 RET_VAL 中输入错误信息,此时不会对 BUSY 进行检查。
– 对于其它所有指令,如果作业执行无错误,则 RET_VAL 的值为“0”, 同时将 BUSY值也置为“0”。如果存在错误,则在 RET_VAL 中输入该错误代码,同时将 BUSY的值置为“0”。
字符串string变量的定义和操作
在全局DB中定义string变量,STRING会自动预先分配最大长度 254 个字符和实际长度0。
如果要写入 STRING 中的某个字符或字节,则 S7-1500 CPU 会检查目标地址是否位于该STRING 的实际长度内。如果超出实际长度,则不会写入该字符或字节。唯一例外:在STRING 实际长度后直接写入字符时。如果可能, 请尽量使用“扩展指令 > 字符串 + 字符”(String + Cha)窗格中的指令,对 STRING 进行处理。