CodeSys软PLC控制EtherNet/IP远程站
1. CODESYS软PLC
CODESYS软PLC是工控领域中使用的最多的编程编程软件,同时CODESYS还有大量的PLC在市场上被广泛的应用。最近CODESYS开发了新的免费库,EtherNet/IP可以让工控机作为主站,远程站可以带比如南京实点的EtherNet/IP远程模块,罗克韦尔的远程模块。国内的厂商一般会对CODESYS非常友好,使用EDS文件就可以方便的使用了,几乎不用任何配置,但像Rockwell这样的公司,产品帮助文件只想到自己的控制器会使用自己的产品做EtherNet/IP远程站,但别人的产品是不是使用Rockwell的产品他们似乎并不关心。因此在帮助文件几乎不提及其他公司的产品。这给用户造成了麻烦,我查找了所有的Rockwell的关于1734-AENT的产品的说明文件,在其中没有发现用其他公司的产品作为主站如何连接1734-AENT的任何帮助信息。
2. 系统组成
目的是使用CodeSys的软PLC作为主站,使用Rockwell的1734-AENT/B Adapter作为从站,一个1734-IB8数字量输入模块和一个1734-OB8数字输出模块组成从站。实现远程控制。
2.1 主站配置
在CODESYS下生成主控制器,生成控制器时选择CODESYS Control Win V3 x64作为主控制器。如图:
2.2 网络配置
建立的PLC之后开始做网络配置。右键单击Device,出现菜单,选择添加设备:
选择了添加设备后出现如下的窗口:
选择以太网适配器,再选择Ethernet设备。
添加完以后可以设置IP地址并选择板子,在个人计算机上有无线网和有限网。我选择了有线网络。无线没有试,哪天试一下。再添加一个扫描设备:
添加了扫描设备后在任务配置中就会多两个任务。一个是I/O任务,10ms,另一个是服务任务20ms。10ms和我们选择的PIR或许有关系。
2.3 连接1734-AENT/B远程站
有了SCANNER后,右键点击SCANNER,选择扫描设备。会扫描到远程站,显示是:
_1734_AENTB_Ethernet_Adapter
如果安装了EDS文件,可以直接复制到项目中。
到现在,整个系统搭建完成了。
3. 配置连接
要配置连接还是走了许多弯路,主要是没有资料可以参考。会的人不说,不会的人死磕,也许就是这样才会有乐趣。
在零星的说明信息中了解到了以下几点:
- 配置时如果配置连接最少要配置8个字节的状态字节,分别是:
reserve 0
reserve 1
reserve 2
reserve 3
reserve 4
reserve 5
reserve 6
reserve 7
这些状态字是标识有哪个slot有模块与否。 - 在Rockwell中需要的run/idle不需要了,即在做配置时的run/idle在配置时可以不用设置了。run/idle的位在第0位。
- 其他的配置可以不用变化
比如我的配置如下
T->O Alignment | T->0 Size | O->T Alignment | O->T Size | |
---|---|---|---|---|
1 | Byte | 10 Bytes | Byte | 1 Byte |
Status 8 byte | ||||
slot 1 byte | ||||
slot 2 byte | slot 2 byte |
做好了配置后,用程序就可以控制远程站的数字量点了。
这样的系统是不是很简单。现在Raspberry PI就可以安装PLC,据说这个PLC是用python写的,没有证实。这个PLC也可以使用EtherNet远程站。比MODBUSTCP的实时性更好。