前 言:
本文将带你详细了解如何使用 TIA Portal 中提供的新 CEM 编程语言以及这种新的高级编程语言的优势。http://mpvideo.qpic.cn/0b2e2qaamaaaomaa4xzobrrfbvgda3kaabqa.f10003.mp4?dis_k=3a5a12338c1da53376bf9b015c8e1d44&dis_t=1649901789&vid=wxv_2308406818085109765&format_id=10003&support_redirect=0&mmversion=false
TIA Portal 版本 17 附带了一种新的高级编程语言,称为因果矩阵或 CEM。在本文中,我们将了解因果矩阵编程语言的优势,并逐步了解如何在 TIA Portal v17 中开始使用 CEM。
因果矩阵语言的优点
CEM 使简单过程的编程变得容易
CEM 编程语言提供了一种直观直观的方式来将原因与结果联系起来。这允许没有强大编程技能的个人创建程序来控制简单的过程。
CEM 使调试程序变得容易
因果矩阵编程语言的可视化布局使其易于调试。任何监控程序的人都可以直观地查看给定效果缺少哪些原因,而无需深入了解程序的细节。
CEM 适用于所有现代 S7 控制器
因果矩阵编程语言在 S7-1200 和 S7-1500 控制器上均可用。这使它成为一个可扩展的解决方案,可以成为标准公司库的一部分。
CEM 向后兼容
用因果矩阵编程语言编写的程序编译成与所有其他语言相同的机器代码。因此,可以将使用 CEM 编程语言编写的程序下载到运行旧固件的 CPU 中。
CEM 可用于安全计划
在其初始版本中,因果矩阵编程语言仅可用于非安全 PLC 程序。但是,在 CEM 编程语言的未来版本中,它将可用于创建安全程序。
我认为 CEM 语言最引人注目的用例是编写安全程序,因为大多数公司都根据因果关系来描述他们的安全系统。
因果矩阵演示
在 TIA Portal 中,创建了一个新项目并将 S7–1200 CPU 添加到该项目中。
接下来,将添加一个程序块。已将程序块称为“传送带控制”并选择使用 CEM 编程语言作为该块。配置完成后,单击“确定”创建块。
创建 Conveyor_Control 块
块被创建并且因果矩阵编辑器打开。您可以看到顶行包含结果,左列包含原因。块接口与以任何其他编程语言创建的块的接口相同。
CEM 编辑器
块接口
在本例中,我们将编写一个程序来控制双向输送机,该输送机将货物从装载位置运送到卸载位置。
- 通过按下切换启用按钮启用传送带。如果在传送带未启用时按下按钮,则启用。如果在启用传送带时按下按钮,则禁用传送带。
- 当系统启用时,传送带可以运行。输送机可以两种模式运行;自动和手动。该模式由操作员通过钥匙开关选择。
- 在自动模式下,输送机反向运行,直到它检测到载物台处于装载位置。当传送带检测到零件已装载到载体上时,它会向前运行。
- 传送带向前运行,直到它检测到处于卸载位置的载体。当传送带检测到零件已从载体上卸下时,它会反向运行。
- 在手动模式下,操作员可以向前移动输送机,直到在卸载位置检测到载体,然后反向移动直到在装载位置检测到载体。双向慢跑通过按钮完成。
基于这些需求,block的接口准备如下:
块接口
使用系统启用探索因果关系
我们要做的第一件事是处理系统的启用。
要启用/禁用系统,我们需要两个原因;
- 第一个原因使用 AND 逻辑来确定是否按下启用按钮并且系统未启用。
- 第二个原因使用 AND 逻辑来确定是否按下启用按钮并启用系统。
因此,我必须在原因列中添加第二个原因。为此,我可以单击原因列中的添加新按钮:
添加新的原因
接下来,我会将这两个原因的名称更新为比 Cause1 和 Cause2 更具描述性的名称。我已经使用了 Req_Enable 和 Req_Disable。
更新原因的名称
接下来,我们可以通过单击灰色指令框内的两个红色问号来选择我们将与我们的原因一起使用的逻辑操作类型。
有效逻辑操作列表
在我们的例子中,我们想对我们的两个原因使用 AND 逻辑。
两种原因的使用和逻辑
最后,我们将反转 Req_Enable Cause 的一个引脚的逻辑并将标签连接到指令。
AND运算符的反转引脚
标记的原因
您可以看到,使用逻辑运算和反转允许您为系统中的原因创建强大的表达式。
接下来,我们将定义系统启用操作的效果。在这种情况下,指令将是在块的 o_CNV_Enabled 输出上执行的赋值运算符 ('=')。
定义效果
现在,我们必须定义因果关系。您可以通过单击因果之间的交叉方块来完成此操作。
定义因果关系
当您双击交叉点时,会出现一个弹出窗口,允许您定义此原因和此结果之间的关系。对于启用原因,关系是 SET ('S') 操作
选择动作
对于禁用原因,关系是 RESET ('R') 操作。
禁用关系
使用手动控制探索行动组
在本节中,我们将对输送机的手动控制进行编程,并学习如何创建动作组,以合乎逻辑的方式将原因联系在一起。
首先,让我们将所需的原因添加到我们的程序中。
添加其他原因
接下来,我们将添加两个新效果——向前运行电机和向后运行电机。
定义运行电机的原因
最后,我们必须建立因果关系。与前面的示例不同,我们希望在激活效果之前激活四个原因。
我们可以使用行动组来实现这一点。要创建一个动作组,请双击因果之间的交集,选择 N(非永久)动作并定义一个新的动作组,该动作组需要 4 个原因中的 4 个激活才能产生效果:
定义新的操作组
在编辑器中,您会看到操作组已创建并以黄色显示。这是组未正确配置的警告。
操作组配置不正确
现在,当您配置下一个交集时,您可以指定此原因是先前配置的操作组的一部分:
将原因指定为先前配置的操作组的一部分
对应属于 Run_Fwd 效果的所有原因重复此操作,并为 Run_Rev 操作组配置新操作组。
完成了手动控制的逻辑
使用自动控制探索交叉柱
接下来,我们要对传送带的自动控制进行编程。使用自动控制,我们有一组完全不同的原因会产生相同的效果。
要让两组原因驱动一个结果,我们可以在结果列中添加一个交集列。为此,请右键单击效果并选择添加交集列。
将交集列添加到效果
这会创建一个额外的列,其中原因可以映射到结果,从而有效地为结果提供 OR 逻辑。
新的交叉点列
填写在自动模式下向前运行传送带的原因,并对 Run_Rev 效果重复相同的操作。
使用新的交集列更新逻辑
探索具有关闭延迟的指令
当零件装载到载体上或从载体上卸下时,输送机开始沿另一个方向运行。
我们不想在零件从载体中取出后立即开始运行传送带。我们想让正在装载零件的操作员有机会将零件正确放置在托架中,并且我们希望让正在卸载零件的操作员有机会在托架开始移动之前让他们的手得到清理。
因此,我们将对 Part_Pres 原因和 Part_Not_Pres 原因引入时间延迟。
为此,我们可以简单地将定时器操作指令之一从 CEM 指令列表拖到所需的原因上。
为原因添加指令
添加了指令,我们可以为指令配置延迟时间。
最后,我们可以对 Part_Not_Pres 原因重复相同的过程:
延迟部分不存在的原因
监控 CEM 块
将程序下载到 PLC 并监视块。
在效果行中,我们可以看到传送带未启用:
传送带未启用
在我的程序中,我切换了输入 i_PB_Toggle_Enable 以启用传送带:
传送带已启用
现在,如果我想向前运行传送带,我可以很容易地看到缺少哪些原因:
缺少使输送机向前运行的原因
在我的程序中,我可以切换缺失的原因以使传送带向前运行:
向前运行输送机
如您所见,调试用 CEM 语言编写的程序非常容易,因为它是一种可视化编程语言。几乎任何人都可以监控这个程序,以了解缺少什么原因来产生他们正在寻找的效果。
结论
因果矩阵编程语言是一种新的、高度可视化的编程语言,包含在 TIA Portal v17 中。
因为它是高度可视化的,所以很容易用简单的逻辑创建和调试程序,其中因果之间有明显的关系。CEM 编程语言是对任何 PLC 程序员用于编写简单逻辑的工具箱的绝妙补充。但是,复杂的机器不要使用 CEM 进行编程,因为指令集有限并且语言的布局很麻烦。
使用 CEM 的潜力在于安全编程,其中安全原因具有明显的影响。
案例下载链接:
https://pan.baidu.com/s/1j7dvwoDMs2ZklJh7C7FCXw