扫一扫,微信关注我们
品牌 | Siemens/德国西门子 | 应用领域 | 化工,电子,电气 |
---|
西门子模块6SL3060-4AP00-0AA0
相对于西门子 PLC 的其它类型编程语言,S7-SCL 与计算机高级编程语言有着非常相近的特性,只要使用者接触过 PASCAL 或者 VB 编程语言,实现 S7-SCL 的快速入门是非常容易的。
S7-SCL(Structured Control Language 结构化控制语言) 具有以下特点:
是一种类似于PASCAL的高级编程语言
符合国际标准IEC 61131-3
PLCopen基础级认证
适用于 S7-300 (推荐CPU314以上), S7-400,S7-1200,S7-1500, C7 and WinAC
S7-SCL 为 PLC 做了优化处理,它不仅仅具有 PLC 典型的元素(例如 输入/输出,定时器,计数器,符号表),而且具有高级语言的特性, 例如:循环, 选择,分支,数组 ,高级函数。
S7-SCL 其非常适合于如下任务:
复杂运算功能
复杂数学函数
数据管理
过程优化
S7-SCL入门文档
STEP7 标准版并不包括 S7-SCL 软件包及授权,需单独购买,STEP7 Professional 版包括了S7-SCL 的软件包及授权,安装即可。在 S7 程序中,S7-SCL 块可以与其它STEP7 编程语言生成的块互相调用。S7-SCL 生成的块也可以作为库文件被其它语言引用。由于 S7-SCL 程序由 ASCII 文本构成,所以它非常容易被导入或导出。
X表示兼容 - 表示不兼容
图1
TIA portal中不同型号PLC使用SCL的可行性:
博途软件本身已经集成SCL语言包。因为V11以上才支持S7-300/400,V12以上支持S7-1500,根据软件的产品发布通知总结如下:
S7-300/400从STEP 7 Professional V11开始支持使用SCL语言
S7-1200从STEP 7 V11 SP2开始支持使用SCL
S7-1500从STEP 7 Professional V12开始支持使用SCL
在STEP7 V5.5以下编程软件中,更多内容请参考S7-SCL 编程语言的详尽手册
西门子模块6SL3060-4AP00-0AA0
WinCC项目中通讯连接至关重要,获取连接通讯状态能有效的判断当前系统的运行情况,及时处理问题。
此文档提供了三种方式来获取通讯连接状态。文档中所述的样例,是已经建立了与S7-300/400 CPU的通讯连接。关于通讯设置的具体步骤请参考文档《WinCC连
文档适用于WinCC 6.2或WinCC 7.0系统。
WinCC 提供工具“Channel Diagonsis"来判断项目中连接的通讯状态,此工具在操作系统 “开始"—>“Simatic"—>“WinCC"—>“Tools"目录下可以找到。此工具也可以添加到WinCC画面中使用。
图1
打开WinCC“图形编辑器",在右边“对象选项板"中选择“控件"列表,如果是V6.2的系统在列表空白区域点击鼠标右键选择“添加/删除"(图1),如果是V7.0的系统需要先选中“ActiveX 控件",再点击鼠标右键选择“添加/删除"(图2)。
图2
打开“选择OCX控件"对话框,在OCX控件列表中找到并且选中“WinCC Channel Diagonsis Control"控件(图3),点击确定。然后在选项板控件列表中就能找到此控件,把此控件添加到画面中,激活WinCC项目。
图3
项目激活运行后,通道诊断控件会显示项目中通讯连接的通讯状态,绿勾表示通讯正常,红叉表示通讯故障。选中故障链接,在右边列表中能显示出此故障的错误代码(图4)。
图4
错误代码的说明可以在帮助文档“S7CHNERRORchs.HLP"中查到,此帮助文档在 WinCC 的安装路径下(如:C:\Programs\Siemens\WinCC\bin )找到。
在连接中所建的变量,在通讯时都会带有变量状态信息,变量状态包含WinCC 和自动化设备之间的连接状态。通过获取这个变量状态,我们就能得知变量所在连接的通讯状态。
首先在需要监控的通讯连接下新建一个变量“status",地址取位存储区首地址(图5)。
在此文档中我们以静态文本来举例。在画面中添加一个静态文本,选择对象属性“字体"à “文本",在动态列表中选择“动态对话框"(图6)。
图6
在动态对话框中,表达式/公式选择变量“status",把表达式/公式的结果列表中“其他"范围对应的文本修改成“通讯已连接"。选择“变量状态",在弹出的状态列表中,把“没有连接"范围对应的文本修改成“通讯干扰"(图7),应用此设置。
图7
项目激活运行后,如果通讯正常,静态文本会显示“通讯已连接",如果通讯故障会显示“通讯干扰"。(具体故障原因可检查通道诊断)
此组态方法也可应用到其他对象,例如修改对象的背景颜色等。
上一章节是把变量的“变量状态"直接与对象属性关联,这个“变量状态"也可以直接使用脚本来读取,在脚本中判断通讯状态,继而执行比较复杂的逻辑操作。
首先在需要监控的通讯链接下新建一个变量“status",地址取位存储区首地址(图5)。
打开“全局脚本"—>“C-Editor",新建一个“动作",编写如下代码(图8)。脚本中“GetTagDWordState"函数获取了变量的变量状态,然后使用If语句执行判断。
图8
在工具栏上点击“信息/触发",(“信息/触发"按钮在V6.2系统中图标参考图8,如果是V7.0系统中图标参考图9)在属性选项板上选择“触发器"à“定时器"à“周期",然后点击“添加"按钮,在弹出对话框中填写触发器名称“Action1",然后定义“周期"5秒。这种组态(图10)会让此脚本在WinCC运行期间以5秒的时间间隔,循环执行。
图9
图10
注意事项:
1.项目运行前必须把计算机属性“启动"列表中“全局脚本行系统"给勾选上(图11)。
2.脚本的执行周期用户可根据项目自行修改,但是不建议执行周期过密。因为在WinCC系统中脚本是单进程的,如果脚本中有很耗时的执行过程,过密的执行周期会造成系统负担过大,导致脚本不执行或者系统运行缓慢等现象。
图11
这里需要注意一点,WinCC系统的默认设置是会监控CPU的STOP状态的,如果CPU打到STOP状态,也会显示通讯故障,通道诊断的错误代码“ 7001" 。这个默认设置可修改(图12),打开变量管理器,选择所用通讯协议,例如“TCP/IP",点击鼠标右键选择“系统参数",在对话框中选择 “CPU 停机监控"取消“激活",则不对CPU的STOP状态进行监控。
图12