浙江省海宁市SIEMENS西门子《授权》中国一级代理商
- 供应商
- 广东湘恒智能科技有限公司
- 认证
- 变频器
- 西门子代理商
- 触摸屏
- 西门子一级代理
- 伺服电机
- 西门子一级总代理
- 联系电话
- 18126392341
- 手机号
- 15267534595
- 联系人
- 梁涛
- 所在地
- 惠州大亚湾澳头石化大道中480号太东天地花园2栋二单元9层01号房(仅限办公)(注册地址)
- 更新时间
- 2024-12-24 09:10
scl(结构化控制语言)是一种基于pascal的gaoji编程语言。随着s7-1200/1500的普及,以及plc编程中大量引入it编程思想和编程理念,scl在西门子plc中使用的比重越来越大。
scl 在复杂编程、数学运算、间接寻址等方面相对传统的梯形图(lad)有着juedui的优势,即使是位逻辑控制也有其自身的特点。
下面介绍几个scl非常有用但又不太为人所知的技巧供大家参考。
/
2
/
如何改变块接口参数显示模式?图 1. 文本式块接口参数
其实,您会发现图1中输入参数数据类型array[*]不是 s7-300/400 能支持的数据类型,也就是说其实上面图1是在tiaportal中编辑的,那这是如何实现呢?答案非常简单,只要使用tia poralv15.1及其以上的版本,然后进行如图2所示的设置就可以实现。
图 2. 设置块接口形式
设置过后,新建的scl块的接口形式就是文本式的了。那怎么修改已有scl块的接口形式呢?我们可以通过将块导出源文件然后再导入源文件的方式来进行改变。有了这个设置,就可以根据需要自由选择块接口参数显示形式了。
/
3
/
如何进行循环程序的调试?
scl的一大特色就是非常适合循环程序编写,如果再配合上间接寻址那就更是如虎添翼。
但是随之而来的是调试问题,很少有人能一次性写出完全没有错误的程序,总会有各式各样的问题,而通过监视功能,只能像如图3所示的那样,zui多监视1次循环。
图3. 监视循环
那如何解决这个问题呢?
有gaoji语言开发经验的人知道,此时应该使用断点调试功能来解决。是的,s7-1500从tia portalv15,固件版本v2.5开始支持scl的断点调试。有了这个功能,就可以非常方便地调试循环内的程序执行情况。具体步骤:
1.首先,在需要监视的循环语句那行zui左边灰色区域位置左键单击,此时会出现一个小圆点,这就是断点,如图4所示。
图4. 监视程序及断点
2.然后监视程序,并激活监视菜单中“监视循环”。如图3所示。
3.在右边测试侧边栏中的“断点”里面,左键选中指定断点,然后点击“启用/禁用断点”并确认。如图5所示。
图5. 启用断点
4. 这时,在侧边栏中的“断点”里面,每次点击图6红色方框中的运行按钮,就可以看到监视值的变化,如图7所示。
图6. 点击运行
图7. 监视值变化
过程就是这样简单。有了这个方法,再复杂的程序调试起来也是易如反掌,并且这种方法对循环外的程序也是一样好用。
/
4
/
顺序控制能否用 scl 来编写?
对于复杂的顺序控制,西门子推荐使用graph编程语言。这个专用于顺控控制的语言功能强大,使用直观,还便于和hmi互动。而对于一些简单的顺序控制,可以通过lad/fbd去搭建逻辑,通过断开使能、置位复位相关变量也可以实现。那可不可以使用scl来实现该功能呢?
答案是可以的。不仅可以,而且现在西门子官方有越来越多库的顺序控制部分都是通过scl来实现的。并且结构清晰,易于修改,还相对graph使用更少的程序资源。
那是如何实现的呢?
答案很简单,通过case of指令就可以实现。有些小伙伴就会纳闷了,caseof不就是判断某个变量为几的时候,执行某些动作吗?感觉和顺控没有任何联系。
不不不,联系很大,判断某个变量为几,可以当做判断目前到了哪一步,执行某些动作,我们可以当做执行该步骤时执行的动作。除此以外,还可以在步骤中加上判断是否满足跳转条件,然后修改步骤号。这样一个简单的顺控逻辑框架就搭建起来了。
当然了,一个完整的顺控还需要考虑顺控如何开始,如何断电保持,如何报警以及复位,如何控制输出等功能,这些可以通过相关逻辑或设置进行实现。
话不多说,可以看一下基于这个方法编的modbustcp轮询功能,如图8和9所示,是不是比自己之前lad编的更加清晰直观啊?是不是在这之前,根本没觉得顺控和通信轮询有联系?
图8. 接口参数
怎么样?是不是有种豁然开朗的感觉?是不是有种冲动,想赶紧看看自己的项目有没有可以改造成顺控的程序,然后使用scl重新编写。那就赶紧行动吧。