[分享] plc SCL 编程语言使用经验分享

科技变革   2013-8-24 12:00 楼主
plc SCL 编程语言与计算机高级编程语言有着非常相近的特性,在经典的Step7 5.X平台和新推出的TIA Portal 平台下都支持该编程语言。在特定的应用场合,使用SCL编程会非常的方便,而且在新一代控制器S7-1500硬件平台下,使用SCL编程其代码执行效率较其他编程语言高效的多,是鼓励大家使用的一种编程语言。欢迎大家积极讨论SCL编程特点、在Step7 5.X,TIA Portal V11 及TIA Portal V12环境的使用问题。
坤之剑分享:

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时着重强调了几项功能:
   

       以上几种功能我深有体会
11、SCL同样支持多重背景调用功能。
12、对于STL能实现的复杂运算功能目前我还没发现SCL不能支持的,在没使用SCL之前的我程序基本都是用STL,使用了SCL之后同样很方便。
另外提一下对SCL能所改进的地方:
1、能在创建功能块的过程中生成块符号名
2、编译生成调试信息支持更大的容量

剑忠侠士分享:
用过一段时间STEP7 Professional V11版本的SCL编程,与STEP7 V5.x版本的SCL编程对比,具有以下特点:
1、STEP7 V11版本编辑器具有代码收折/展开功能。
2、STEP7 V11版本编辑器具有I/O参数表,因此可在参数表里定义I/O变量使用;而STEP7 V5.x版本只能靠写代码定义I/O参数变量。
3、STEP7 V11版本编辑器中,变量引用时加入了“#”前缀符号,并且是自动强制添加前缀符号。
4、STEP7 V11和STEP7 V5.x版本都能导出SCL源代码。但STEP7 V5.x版本能直接Copy所有的源代码保存;然而STEP7 V11版本直接Copy编辑器中的源代码是没有I/O参数变量定义部分源代码,只能采用导出方式才能完整Copy所有的源代码。

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复