codesys与两台EC机器人进行EIP通讯
1. 简介
EtherNet/IP 是一种基于以太网技术的工业自动化网络协议,是以太网技术在工业领域的应用。它是由罗克韦尔自动化公司(Rockwell Automation)开发的,是一种开放的网络标准,可以用于连接各种各样的设备,如 PLC、传感器、执行器、HMI 等。
EtherNet/IP 协议基于 TCP/IP 协议栈,采用了面向连接和面向无连接的通信方式,可以实现高速的数据传输和实时的控制。它可以支持 10Mbps、100Mbps和 1000Mbps 三种传输速率,距离可以达到 100 米或更远。同时,EtherNet/IP还具有很强的灵活性和可扩展性,可以支持多种拓扑结构和协议适配器。
EtherNet/IP 协议的主要特点包括:
高速传输:EtherNet/IP 可以支持多种传输速率,可以满足不同应用场景的需求。
实时性强:EtherNet/IP 可以实现高速数据传输和实时控制。
灵活性强:EtherNet/IP 可以支持多种拓扑结构和协议适配器。
易于集成:EtherNet/IP 是一种开放的网络标准,可以与各种各样的设备集成使用。
可扩展性强:EtherNet/IP 可以通过加入新的协议适配器和功能模块来扩展网络功能。
安全性好:EtherNet/IP 支持多种安全机制,如 VLAN、VPN、IPsec 等
EC 系列产品支持以太网/IP 从站应用。 如果控制器作为从设备运行,则无需进行其他置。
在通信配置过程中可能使用的术语描述如下:
1.Originator: 向从站发起连接请求的一方,一般是主站或客户端设备。
2.Target:终端节点或者是从站设备,被请求建立连接的一方。
3.O->T:指示发起者到目标节点的方向,用于描述数据报由主站发送到从站。
4.T->O:指示从目标到发起者的方向,用于描述数据报由从站发送到主站。
5.RPI: Requested Packet Interval, 数据报的请求周期,单位为 ms。
6.Connection Timeout Multiplier: 其值表示的乘数与 RPI 相乘得到数据报传输的超时间,一般由主站设置。
7.point to point: 一种主从站的连接类型,点对点连接。
8.Multicast:一种主从站的连接类型, 由一个从站对多个主站传播。(目前暂不支持这种链接)。
9.EDS: Electronic Data Sheet,一种包含从站所有配置信息的文件,主站必须读取这个配置文件才能生成对从站的正确请求报文。
Ethernet/IP 部分寄存器被划分为11 个组(也称 slot),每个 slot 实质是一个 Ethernet/IP 连接,且都包含有 O->T与 T->O 两个方向的数据,其中只有一个方向上承载的数据为有效数据,而寄存器数据最终会在哪一个方向传输取决于寄存器的实际意义。如从控制器的视角,所有类型的输出寄存器会在T->O 方向传输,此时另一个方向 O->T存的意义可以认为是对 T->O 方向数据的确认;相对的,所有类型的输入寄存器会在 O->T 方向传输具体每个 slot 讲义如下(具体可参照 elite 通讯手册)
Adapter Slot 0: 32 个 32 位 int 输出寄存器,地址范围 [0,31] 传输方向 T->O(elite--codesys)
Adapter Slot 1: 32 个 32 位 int 输入寄存器,地 址范围 [0,31] 传输方向 O->T(codesys--elite)
Adapter Slot 2:寄存器类型 32 个 float 输 出寄存器,地址 范围 [0,31] 传输方向 T->O(elite--codesys)
Adapter Slot 3: 寄存器类型 32 个 float 输 入寄存器,地址 范围 [0,31] 传输方向 O->T(codesys--elite)
Adapter Slot 4 寄存器类型 52 个 float 输 入寄存器,地址 范围 [0,51]
主要包含机器人位置速度等信息
传输方向 T->O(elite--codesys)
Adapter Slot 5 寄存器类型 4 个 32 位状态 寄存器,地址范 围 [0,3]
主要包含系统输入输出数字 IO 状态
传输方向 T->O (elite--codesys)
Adapter Slot 6 寄存器类型 8 个 32 位状态 寄存器,地址范 围 [0,7]
主要包含系统模拟量输入输出值
传输方向 T->O(elite--codesys)
Adapter Slot 7 寄存器类型 18 个 32 位状 态寄存器,地址 范围 [0,17] 主要包含安全参数状态及值
传输方向 T->O(elite--codesys)
Adapter Slot 8 寄存器类型 46 个 32 位状 态寄存器,地址 范围 [0,45] 主要包含时间等信息
传输方向 T->O (elite--codesys)
Adapter Slot 9 寄存器类型 64 个 8 位状态 寄存器,地址范 围 [0,63]
主要包含输入 M 变量,M912 开始
传输方向 O->T(codesys---elite)
Adapter Slot 10
寄存器类型 64 个 8 位状态 寄存器,地址范 围 [0,63] 主要包含输出 M 变量,M400 开始传输方向 T->O(elite--codesys)
2. 配置及验证步骤
2-1.硬件接线与网络配置
这里网线连接采用了交换机,参考下图

机器人1、2与电脑需要在同一网段,并且不同地址,如图
电脑IP:192.168.1.202

机器人1IP:192.168.1.200

机器人2IP:192.168.1.201

2-2. codesys配置及使用步骤
2-2-1.新建工程
打开 codesys 软件,点击新建程序,如下所示

选择 project-Empty project,可根据需要命名,点击确定

2-2-3.安装EDS文件
加载安装 elite 的EDS 文件,在 Codesys 菜单栏-工具-设备存储库,点击安装,导入附件中对应 EC 机器人 eds 文件。导入后文件会出现在 EthernetIP 总线下,同时显示文件已经安装到设备存储库


2-2-4.添加设备
选择新建设备 Untitled1,右键点击添加设备,选择对应的 CODESYS Control Win V3 X64 中的 PLC,点击添加设备

选择新建的 PLC,点击右键选择添加设备

2-2-5.设备配置
选择现场总线--EthernetIP--以太网适配器--Ethernet,点击右下角添加设备

选择设备栏 Ethernet(Ethernet),点击右键选择添加设备,选择 Ethernet/IP Scanner,点击右下角添加设备

选择 Ethernet/IP Scanner,点击右键选择添加设备,选择 Elite Robot,点击右下角添加设备

将 EC 机器人设备添加后,点击 Elite Robot,选择通用设置从站(机器人)IP地址,与机器人 IP 地址一致,如下图所示(重复两次,添加2台机器人)

2-2-6.启动PLC
找到电脑右下角图标处,右键选中,Start PLC

双击 CODESYS Control Win V3 X86 设备,进入通讯设置,选择对应电脑名称,扫描设备

2-2-7.设置主站IP
设置 Ethernet 主站 IP 地址,双击 Ethernet,选择通用中的“...”,选择对应的以太网,如下图所示

2-2-8.组态机器人模块
选择 Elite Robot 模块进行配置,选择连接,根据需要添加连接,这里连接 Adapter Slot 0、1、2、3、4、9、10,包含 INT 输入输出寄存器、Float 输入输出寄存器、位置信息寄存器及 M 虚拟输入输出(通讯类型选择组播)


2-2-9.程序编译及下载
配置完成后就可以编译程序、下载程序已经模块使能了,如下图

2-2-10.运行与测试
下载完成后就可以运行程序了

通讯正常后左侧任务栏会出现绿色的图标,代表通讯正常

机器人导入脚本并运行,关联各 5 个 INT 输入输出和 Float 输入输出,脚本如下所示(具体释义可参考 LUA 脚本手册)

2-2-10.数据验证
Elite_Robot--EtherNET/IP IO 映射,机器人当前位置信息 Adapter Slot 4,将机器人当前基座信息发送到 Adapter Slot 4 变量中

Float 输出,将机器人数值发送到 codesys 变量,D010-D014 关联到 Adapter Slot 2 输出前 5 个数值,数据变化一致

Float 输入,将 codesys 数值发送到机器人变量,D000-D004 关联到 Adapter Slot 3 输入前 5 个数值,数据变化一致


INT 输出,将机器人数值发送到 codesys 变量,I010-I014 关联到 Adapter Slot 0 输入前 5 个数值,数据变化一致

INT输入,将codesys数值发送到机器人变量,I000-I004关联到Adapter Slot
1 输出前 5 个数值,数据变化一致

M 虚拟输入,将 Codesys 的 Bool 数值发送到机器人 M 虚拟输入变量,M912开始的 M 关联到 Adapter Slot 9 输出的 Bool 值(具体参考 Adapter Slot 9 定义数值),数据变化一致

M 虚拟输出,将机器人 M 虚拟输入变量数值发送到 Codesys 的 BOOL 值,M400开始的 M 关联到 Adapter Slot 10 输入的 BOOL 值(具体参考 Adapter Slot 10 定义数值),数据变化一致

M 虚拟输出,将机器人 M 虚拟输入变量数值发送到 Codesys 的 BOOL 值,M400开始的 M 关联到 Adapter Slot 10 输入的 BOOL 值(具体参考 Adapter Slot 10 定义数值),数据变化一致

3. 常见问题解答
3.1问:设置主站IP的时候不成功、页面提示“没有到设备的连接,请重新扫描网络”
答:需要先打开PLC,再进行主站加载
3.2问:其中有一台机器人通讯不成功,状态栏一直红色报警
答:检测一下机器人IP与电脑是否在同一网段,ping能否ping通,配置页面是否有设置对应的机器人IP.
3.3问:通讯都正常了就是读取不到任何数据
答:检测一下通讯使能是否有打开,没有打开的情况下需要打开使能
3.4问:输入了预备值当前值没有变化
答:需要在调试页面进行手动写入值
4. 附录
EIP.LUA