技术论坛

 SCL如何获取系统功能块的ENO状态? 如VAL_STRG

返回主题列表
作者 主题
耀眼光芒
侠圣

经验值:2331
发帖数:382
精华帖:3
楼主    2021-10-24 18:29:44
主题:SCL如何获取系统功能块的ENO状态? 如VAL_STRG

SCL用的挺多的,比STL可维护性好很多,

今天遇到VAL_STRG 这个功能块,需要获取ENO状态,用来判断是否转换成功。


如果LAD和FBD应该是一个管脚,如果是STL则是BR位(太长时间不用,都不熟悉了)


请问SCL是否有类似的检测方法? 如果不行就得封装一下了。


调试VAL_STRG 这个块的管脚,TIA 15.1 总是奔溃 比较无语......


谢谢大家!


工艺第一& 我所说的一切均代表个人意见
Zane
版主

经验值:76197
发帖数:19330
精华帖:377
7楼    2021-11-07 18:22:05
精华帖  主题:回复:SCL如何获取系统功能块的ENO状态? 如VAL_STRG

       EN/ENO是指一种编程机制,使用使能输出 ENO,可检测和处理某些运行系统错误。后续指令的执行取决于该使能输出的信号状态。使用 EN/ENO 机制可避免程序崩溃。块状态将以布尔型变量的形式进行传递。因此,EN/ENO机制并不是梯形图独有的,LAD/FBD/STL/SCL/GRAPH 都支持EN/ENO机制。


EN/ENO 机制可用于以下两个方面:

1)单个指令的调用



2)程序块的调用

关于SCL的 EN/ENO机制:


       在 SCL 程序段中,可以通过赋值来改变 ENO。为此,请写入“ENO:=TRUE”或“ENO:=FALSE”,或使用 BOOL 数据类型的变量。当激活“自动置位 ENO”(Set ENO automatically) 块属性时,编译器会添加程序代码来计算 ENO,类似于编程语言 LAD 和 FBD。添加的程序代码会增加运行时间,因此默认情况下禁用“自动置位 ENO”(Set ENO automatically) 属性。

       在 SCL 程序段中,无法为 FC 的 EN 参数赋值。但是可以在条件语句中调用 FC,这意味着需要将其置于“IF”指令中。这意味着块调用不会执行,也不会改变 ENO。此行为与编程语言 LAD和 FBD 中的行为不同。


细节请参考《STEP 7 和WinCC Engineering V17系统手册》


Zane 注册自动化系统工程师 Always save before download
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。