欢迎访问我的个人网站,网站正在创建期间,主要供自己学习交流使用!

西门子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 进行处理。


湘公网安备43012102001039    湘ICP备14007447号-1    邮箱:35744243#qq.com