文章来源
本文转载自CSDN 作者:姚家湾
终于拿到了施耐德电气硬件PAC产品M251MDESE 。以前对EcoStruxure Automation Expert的测试都是基于软件SoftDPAC的。总是有一种运行仿真软件的感觉,心中有点不踏实,现场还是要硬件设备解决问题。现在我终于见到能够运行IEC61499 的硬件DPAC了。这是我第一次看见的能运行IEC61499的PAC。实际上它是在施耐德电气成熟的PLC硬件产品的基础上,通过软件升级成为IEC61499 PAC。这意味着它能够在现场高可靠运行,而且具有更多的IO模块可供选择。施耐德电气的EcoStruxure Automation Expert 系统让长期以来停留在学术领域的IEC61499标准有机会走向在自动控制领域实际应用。正因为如此,我特别也期待EAE的硬件产品的测试。
M251简介
M251是施耐德电气基于IEC61131-3的PLC产品。其中TM251MESE型号是双口以太网的PLC产品。
它的主要特点如下:
●带有2个端口的以太网交换机接口(ethernet1_1 和ethernet1_2),100M速率,可以串联成分布式网络。
●带有另外一个以太网接口(ethernet 2),100M速率。可以连接现场总线。例如modbusTCP。
●带有一个串行口和一个SD卡座
●一个USB插座,可以通过它更新固件和某些参数的设置。
●可以扩展TM3/TM2系列的IO模块(右边),也可以扩展TM4 IO模块(左边)
相比我们头脑中传统PLC的概念,M251这些特征透露出网络时代新一代PLC的气息。我拿到的型号是TM251MDESE,其中的D大概是代表dPAC吧?
测试目的和方案
我主要测试两个方面:
1.通过Ethernet 2连接一个modbusTCP控制器上,实现modbusTCP通信。
这非常重要,意味着可以接入各种第三方远程IO模块,或者第三方的专用传感器,执行部件等。这意味着M251将称为一个IEC61499网关,将无数非IEC61499的设备瞬间具有了IEC499的能力。这是一件令人兴奋的事情。为此,我使用了一个自己原来研发的一个基于cortex-M处理器的控制器modular-2,它采用Arm公司的Mbed OS,具有一个Ethernet网口。我为此编写了一个modbusTCP server端程序(需要的读者可以私信分享)。相信许多的国产远程IO模块也能够方便地接入。
2.增加一个TM3DM8R-G模块。测试数字IO控制接口:
有了IO模块才更像PLC。但是施耐德电气提供给我的M251没有带任何IO模块,于是我自己在淘宝上买了一个TM3DM8R-G模块,它具有4个24V的输入,4个继电器输出。希望后面能接一些灯和开关,电机。构建一个应用场景。
测试床的框架如下图所示:
测试的过程
设置IP地址
●ethernet 1 的IP地址:10.10.1.175
●ethernet 2的IP地址:10.11.1.176
ethernet 1和ethernet 2是隔离的,需要设置为两个网段。下面我们会介绍通过EAE软件也可以修改设备的Ethernet 1的IP地址,而ethernet2的IP地址则需要通过Automation Device Maintenance 软件才能够修改。这个软件可以在施耐德电气官网上免费下载。设置IP地址折腾了我一段时间,后来还是在施耐德电气工程师帮助下得以完全解决。
新建一个项目mtest
系统的拓扑图({physical Topology)
系统由交换机,M251和一个通用以太网现场设备 Generic Ethernet field device构成,其中的通用以太网现场设备是一台基于低成本cortex-M Arm芯片的控制器,它运行Arm公司的Mbed OS,我们在它上面编写了一个modbusTCP的测试程序。你也可以连接一台PC机,运行modbusTCP server程序来测试。
下面是M251的IP地址的配置:
在这里我们修改了Ethernet的IP地址为192.168.31.175.这要与M251内部的IP地址一致。
注意:M251设备中的IP地址要通过EAE软件来设置,具体的做法如下:
鼠标点到左边Ethernet 1的位置后击右键。弹出下面的子菜单:
选择Set IP Address。然后会弹出:
这时你可以修改IPv4 address。然后按Apply。修改IP地址之后,机器重新上电。
Ethernet 2的地址可以使用Automation Device Maintenance软件。这是一个设备维护软件,用来下载硬件的固件和修改某些参数。你可以使用它修改modbus TCP 的IP地址。这里就不多描述。
添加modbus
和TM3DM8R-G的硬件配置
添加modbus的Hardware CAT
在《施耐德电气开放自动化平台初体验(3)》已经有了描述。读者可以参考。再次提醒下面几点:
MODBUSGENTCPS的属性中的IP地址修改为外接modbusTCP设备的IP地址10.11.1.100。
VAL_IN1_MODBUSGENTCPS和VAL_IN1_MODBUSGENTCPS的ioevent只能修改为cycle。不能是requestread(我不知道这是为什么,按理说request read是需要的,为什么不行呢?要进一步测试)
添加TM3DM8R-G模块 的Hardware CAT
打开HW_Configuration,点击窗口上方的第一个图标Add new master hardware CAT ,然后弹出下面的窗口:
选择ST_IoTMx.BMTM3,在产生的项目上右键Add ,出现:
选择:SE.IoTMx。TM3DM8R-G模块。于是,HW_Configuration的窗口变成为:
在这个窗口中要填入“PLC_1"和”DOUT“。虽然它称为Value实际上是一个符号连接(symbol link ),它是为这个硬件输出引脚定义了一个符号(名称)。
App中变量连接到硬件CAT 的符号连接
BMTM3 CAT不会像modbus那样通过mapping在RES中自动产生对应的SYMLINKMULTIVARSSRC功能块,需要手动地在App中添加。
在应用中,要使用一个符号连接多变量源功能块(SYMLINKMULTIVARSSRC)或者符号连接多变量目标功能块(SYMLINKMULTIVARSDSR)来建立功能块网络中的数据与symbol link的连接。这两个功能块在runtime.System库中。在App中添加了这个功能块后发现Value带一个小红的x
这是因为VALUE的类型为ANY,可以通过interface编辑,修改它的类型和数量。方法是击右键
选择interface edit。这时会出现下列对话框:
第一行是Value的数量,可以增加,也可以将Any 改为UINT。这个功能还是比较贴心的。减少了IEC61499功能块类型转换的麻烦(4diac就是如此)。
适当的连线。
添加DPAC_FULLINIT功能块
完成了上面的功能块网络后,将应用部署到M251 中运行,发现程序运行正常,观察(watch)有关的数据也都能够看到正确的数据,但是令人遗憾的是M251的硬件没有任何反应,Ethernet 2没有发送ModbusTCP数据帧,TIM3DM8R-G也没有继电器的开关和信号灯闪烁。反复搞了很长时间,结果还是在施耐德电气上海的工程师给我了帮助,他提醒我要放置一个DPAC_FULLINIT功能块。这个功能块在SE>DPAC库中。放上去以后,只要连一个INIT。
OC_RETRIGGER可以不用连接事件。然后下载下去后,modbusTCP和TM3DM8R-G都工作了。
使用中的一些小技巧
在使用中也发现一些奇奇怪怪的事情,比如在RES 中无法删除额外的连线。后来我就不使用HW_Configuration边上的Mapping,尽量在App 中放置所有的功能块,在本项目中,App最后改为:
自动上电运行
测试完成后发现,M251关电之后重新上电,PLC 不会自动运行重新,需要在EAE中login而后device run。如何做到自动上电运行呢?做法如下:
1.在logical device 中选中M251,右边的runtime Configuration中有一个boot选项修改为overwrite 。
2.部署界面击右键选择deploy device configuration
3.重新部署App。
4.OK
结束语
整整花了两天的时间,在施耐德电气工程师的指导下初步完成了EcoStruxure Automation Expert 硬件M251 PLC 应用测试。感谢施耐德电气的技术工程师们的帮助。他们总是能够在我山穷水尽时带来柳暗花明。
通过这个测试,我们更加能够体会到施耐德电气EcoStruxure Automation Expert的魅力。在未来的工程中,只要使用像M251这样成熟硬件的小型PLC就可以实现一个IEC61499分布式控制系统,由于采用了开放型现场控制协议,第三方的传感器,执行部件和远程IO模块也可以轻松地连接到IEC61499网络中。EcoStruxure Automation Expert使一个长期徘徊在实际应用系统之外的,孤芳自傲的IEC61499标准走到了自动控制系统的现场。当然软件的逐步完善,文档,应用指南以及社区交流都非常重要。
下面我还将进一步地做细节的测试。也希望与正在测试EAE软件的朋友做交流。
上一篇:20个电气元件选型口诀