1、首先我认为SCL非常接近我们的思维,在编制时程序可读性比较强
2、对于指针编程也是SCL的优势,可以很轻松的实现STL能实现的指针编程,这样我们在时间紧迫的
情况下就不需要再去花时间去搞懂STL的指针编程
3、支持FOR、WHILE、REPEAT等循环指令,并且有EXIT指令跳出本次循环,灵活性强。
4、支持AT指令,如同高级语言的继承,父体是一字节ProgramCommand,然后
定义 ProgramCommandBit AT ProgramCommand:ARRAY[1..8] OF BOOL,
可实现取这个字节的每一位:ProgramCommandBit [0]、ProgramCommandBit [1]、、、、、
5、可以利用SCl源文件生成UDT、DB块,并赋予初始值、、、、
6、调试时一样可以像STL、LAD那样在线监视,并且各个变量的状态显示很直观,在线监控要
在编译时生成调试信息,保证PLC与程序的时间戳相同,即可在线监控。另外支持断点调试,
可以很直观的监控循环体每一步执行的结果。
6、目前我遇到SCL在生成调试信息时经常提示生成的调试信息超过64KB,再进行减少代码还是提示此信息
不知各位有没有遇到我这样的情况、、、、、
7、CASE指令可实现STL的JL指令的功能,使用起来更直观化,另外支持GOTO跳转,对于程序实现步进控制同样很方便。
8、SCL不仅可以在线调试,而且支持变量"参考数据"功能,并且变量符号与绝对地址无一疏漏。
9、对于SCL上升沿下降沿检测的实现我并不同意4楼所说,同样只需要像STL、LAD定义一个沿检测位,
即可轻松实现沿检测功能,下面举一上升沿例子:
上升沿检测原理: IF In AND NOT Mem THEN //沿检测逻辑
执行语句部分;
END_IF;
Mem:=In;
注:Mem就是我们需要的中间存储位、 In被检测的变量
10、另外在西门子介绍SCl时着重强调了几项功能: