终于拿到了施耐德公司硬件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 地址
第一件事情是要知道M251的IP 地址,几乎没有地方能找到M251的IP 出厂设置。我使用wireshark 软件检测它的IP ,具体的做法是打开wireshark ,选择ethernet。然后插拔一下网线,M251 会报一个IP 地址出来。经我们的测试,这台M251 的以太网IP 地址分别为:
- ethernet1 的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 软件的朋友做交流。