codesys与两台EC机器人进行EIP通讯
1. 简介
EtherNet/IP 是一种【shì yī zhǒng】💗基于以太网技【tài wǎng jì】🏨术的工业自动【yè zì dòng】化网络【huà wǎng luò】协议🏧,是以太🏪网技术【wǎng jì shù】在工业【zài gōng yè】领域的❌应用。它是由罗克韦尔自动【ěr zì dòng】化公司(Rockwell Automation)开发的,是一种【shì yī zhǒng】💗开放的网络标准【zhǔn】,可以用【kě yǐ yòng】🦀于连接⬇各种各👊样的设备,如 PLC、传感器、执行器、HMI 等🖋。
EtherNet/IP 协议基于🎂 TCP/IP 协议栈【xié yì zhàn】🕧,采用了🤤面向连【miàn xiàng lián】🏕接和面🙎向无连接的通信方式🚵,可以实现高速的数据【de shù jù】传输和实时的控制【kòng zhì】。它可以支持【zhī chí】 10Mbps、100Mbps和 1000Mbps 三种传输速率【shū sù lǜ】💆,距离可以达到 100 米或更远🐓。同时,EtherNet/IP还具有【hái jù yǒu】很强的【hěn qiáng de】灵活性【líng huó xìng】和可扩🍑展性【zhǎn xìng】🤺,可以支持【zhī chí】多种拓扑结✈构和协议适配【yì shì pèi】器。
EtherNet/IP 协议的主要特➡点包括【diǎn bāo kuò】:
高速传🌖输【shū】:EtherNet/IP 可以支持多种【chí duō zhǒng】传输速【chuán shū sù】率,可以满🚝足不同【zú bú tóng】应用场🍻景的需🏧求。
实时性【shí shí xìng】🌒强:EtherNet/IP 可以实现高速👞数据传【shù jù chuán】输和实🏕时控制【shí kòng zhì】。
灵活性强【qiáng】⏬:EtherNet/IP 可以支持多种拓扑结【tuò pū jié】构和协【gòu hé xié】🎟议适配🌄器。
易于集【yì yú jí】😢成【chéng】:EtherNet/IP 是一种📇开放的网络标🔦准,可以与各种各样的设【yàng de shè】备集成【chéng】使用【shǐ yòng】🎱。
可扩展【kě kuò zhǎn】性强💑:EtherNet/IP 可以通🌖过加入🛢新的协【xīn de xié】议适配【yì shì pèi】🏡器和功能模块来扩展网络功【wǎng luò gōng】能。
安全性好【hǎo】:EtherNet/IP 支持多【zhī chí duō】♟种安全机制🦀,如🐽 VLAN、VPN、IPsec 等【děng】
EC 系列产【xì liè chǎn】🥋品支持以太网/IP 从站应🗻用。 如果控【rú guǒ kòng】💧制器作【zhì qì zuò】为从设【wéi cóng shè】备运行,则无需进行其👸他置。
在通信🏏配置过【pèi zhì guò】程中可🈷能使用【néng shǐ yòng】的术语【de shù yǔ】描述如🧥下:
1.Originator: 向从站发起连接请求的一方😾,一般是主站或【zhǔ zhàn huò】🙀客户端【kè hù duān】🐛设备【shè bèi】。
2.Target:终端节点或者是从站【shì cóng zhàn】设备,被请求🤓建立连【jiàn lì lián】🐝接的一方【fāng】🔚。
3.O->T:指示发起者到目标节点的方【diǎn de fāng】🆎向【xiàng】,用于描述数据🍶报由主站发送【zhàn fā sòng】🃏到从站。
4.T->O:指示从💪目标到【mù biāo dào】发起者【fā qǐ zhě】的方向,用于描述数据【shù shù jù】⌚报由从站发送到主站🗨。
5.RPI: Requested Packet Interval, 数据报的请求【de qǐng qiú】🚒周期【zhōu qī】🔇,单位为 ms。
6.Connection Timeout Multiplier: 其值表🌆示的乘【shì de chéng】数与 RPI 相乘得到数据🕞报传输【bào chuán shū】🏨的超时【de chāo shí】间【jiān】,一般由主站设置🎦。
7.point to point: 一种主从站的📠连接类【lián jiē lèi】型🈚,点对点连接【lián jiē】。
8.Multicast:一种主【yī zhǒng zhǔ】🎌从站的【cóng zhàn de】连接类🚔型【xíng】, 由一个🚣从站对多个主【duō gè zhǔ】站传播。(目前暂🍨不支持这种链接)。
9.EDS: Electronic Data Sheet,一种包含从站【hán cóng zhàn】所有配置信息😧的文件【de wén jiàn】🚫,主站必【zhǔ zhàn bì】🕕须读取这个配置文件【zhì wén jiàn】才能生成对从站的正【zhàn de zhèng】确请求🚸报文🦄。
Ethernet/IP 部分寄存器被🐓划分为11 个组(也称【yě chēng】 slot),每个【měi gè】 slot 实质是一个 Ethernet/IP 连接【lián jiē】🤘,且都包【qiě dōu bāo】含有 O->T与 T->O 两个方【liǎng gè fāng】🗾向的数据,其中只有一个【yǒu yī gè】🍅方向上【fāng xiàng shàng】承载的⛩数据为有效数据,而寄存【ér jì cún】器数据🌏最终会✉在哪一个方【yī gè fāng】向传输【shū】取🐚决于寄😇存器的【cún qì de】实际意❓义👗。如从控【rú cóng kòng】制器的👦视角,所有类【suǒ yǒu lèi】型的输【shū】🗣出寄存器会在🦖T->O 方向传【fāng xiàng chuán】输【shū】,此时另一个方【yī gè fāng】向 O->T存的意【cún de yì】义👗可以认【kě yǐ rèn】为是🚻对 T->O 方向数😨据的确【jù de què】认;相对的,所有类【suǒ yǒu lèi】型的输【shū】🗣入寄存😒器会在🦖 O->T 方向传【fāng xiàng chuán】输具体【shū jù tǐ】每个【měi gè】 slot 讲义如😲下🛳(具体可【jù tǐ kě】😦参照【cān zhào】 elite 通讯手册)
Adapter Slot 0: 32 个【gè】 32 位 int 输出寄【shū chū jì】😕存器⏮,地址范围【wéi】 [0,31] 传输方向🔂 T->O(elite--codesys)
Adapter Slot 1: 32 个【gè】 32 位 int 输入寄存器【cún qì】,地【dì】 址范围🌑 [0,31] 传输方🚥向🕴 O->T(codesys--elite)
Adapter Slot 2:寄存器【jì cún qì】类型 32 个 float 输【shū】 出寄存器【jì cún qì】,地址〰 范围 [0,31] 传输【shū】方🐮向🐶 T->O(elite--codesys)
Adapter Slot 3: 寄存器【jì cún qì】类型🕕 32 个 float 输【shū】 入寄存器【jì cún qì】,地址💦 范围 [0,31] 传输【shū】方向🌤 O->T(codesys--elite)
Adapter Slot 4 寄存器【jì cún qì】🥛类型 52 个【gè】 float 输🚗 入寄存📀器,地址 范围【fàn wéi】 [0,51]
主要包含机器人位置速度等信息
传输方向【xiàng】🍡 T->O(elite--codesys)
Adapter Slot 5 寄存器【jì cún qì】🦐类型💳 4 个【gè】 32 位状态【wèi zhuàng tài】Ⓜ 寄存器【jì cún qì】🦐,地址范 围 [0,3]
主要包含系统输入输出数字 IO 状态
传输方🤣向【xiàng】 T->O (elite--codesys)
Adapter Slot 6 寄存器😕类型【lèi xíng】 8 个 32 位状态【wèi zhuàng tài】🔒 寄存器😕,地址范【dì zhǐ fàn】 围 [0,7]
主要包含系统模拟量输入输出值
传输方【chuán shū fāng】向⛺ T->O(elite--codesys)
Adapter Slot 7 寄存器🦕类型【lèi xíng】 18 个【gè】🗻 32 位状【wèi zhuàng】💞 态寄存器🦕,地址 范围【fàn wéi】 [0,17] 主要包含安全参数状态及值🍧
传输方向【xiàng】😚 T->O(elite--codesys)
Adapter Slot 8 寄存器【jì cún qì】类型 46 个【gè】🎟 32 位状👅 态寄存器【jì cún qì】,地址【dì zhǐ】 范围【fàn wéi】🦄 [0,45] 主要包含时间等信息🕹
传输方🍫向【xiàng】 T->O (elite--codesys)
Adapter Slot 9 寄存器【jì cún qì】😮类型 64 个 8 位状态⛲ 寄存器【jì cún qì】😮,地址范【dì zhǐ fàn】 围【wéi】🖱 [0,63]
主要包含输入 M 变量,M912 开始
传输方⚾向【xiàng】 O->T(codesys---elite)
Adapter Slot 10
寄存器类型 64 个 8 位状态【wèi zhuàng tài】👇 寄存器,地址范【dì zhǐ fàn】➰ 围【wéi】👡 [0,63] 主要包含输出🔅 M 变量,M400 开始传输方向【shū fāng xiàng】 T->O(elite--codesys)
2. 配置及验证步骤
2-1.硬件接线与网络配置
这里网线连接采用了交换机,参考下图

机器人【jī qì rén】1、2与电脑【yǔ diàn nǎo】需要在【xū yào zài】同一网段,并且不🛒同地址🏙,如图🦆
电脑IP:192.168.1.202

机器人【jī qì rén】⚾1IP:192.168.1.200

机器人【jī qì rén】🌨2IP:192.168.1.201

2-2. codesys配置及使用步骤
2-2-1.新建工程
打开 codesys 软件🗣,点击新【diǎn jī xīn】建程序【jiàn chéng xù】,如下所示💻

选择 project-Empty project,可根据【kě gēn jù】需要命名【míng】🥡,点击确定🎓

2-2-3.安装EDS文件
加载安🔒装【zhuāng】 elite 的EDS 文件⌚,在 Codesys 菜单栏【cài dān lán】-工具📪-设备存【shè bèi cún】储库,点击安装【zhuāng】,导入附件中对【jiàn zhōng duì】应🔆 EC 机器人 eds 文件⌚。导入后【dǎo rù hòu】文件会🤦出现在【chū xiàn zài】 EthernetIP 总线下🎱,同时显💚示文件⌚已经安装到设【zhuāng dào shè】🕺备存储【bèi cún chǔ】库


2-2-4.添加设备
选择新🥕建设备【jiàn shè bèi】 Untitled1,右键点击添【jī tiān】🐾加设备,选择对应的🎽 CODESYS Control Win V3 X64 中的【zhōng de】 PLC,点击添【jī tiān】🐾加设备

选择新🔌建的【jiàn de】 PLC,点击右【diǎn jī yòu】键选择添加设备🔟

2-2-5.设备配置
选择现【xuǎn zé xiàn】场总线🚘--EthernetIP--以太网适配器【shì pèi qì】--Ethernet,点击右下角添🅾加设备【jiā shè bèi】🃏

选择【xuǎn zé】设🕳备🎆栏【lán】 Ethernet(Ethernet),点击右【diǎn jī yòu】键选择【xuǎn zé】添加设备🎆,选择【xuǎn zé】 Ethernet/IP Scanner,点击右【diǎn jī yòu】下角添【xià jiǎo tiān】🦑加设备🎆

选择 Ethernet/IP Scanner,点击右【diǎn jī yòu】👾键选择🌺添加设【jiā shè】💽备【bèi】,选择 Elite Robot,点击右【diǎn jī yòu】👾下角添加设【jiā shè】💽备【bèi】

将 EC 机器人【rén】📜设备添【shè bèi tiān】加后,点击 Elite Robot,选择通用设置从站【cóng zhàn】🤧(机器人【rén】📜)IP地址,与机器人【rén】📜 IP 地址一🍖致,如下图所示🚔(重复两【chóng fù liǎng】🦑次【cì】,添加【tiān jiā】2台机器【tái jī qì】🤲人【rén】🤹)

2-2-6.启动PLC
找到电脑右下角图标【jiǎo tú biāo】❇处【chù】⚓,右键选中,Start PLC

双击【shuāng jī】⚽ CODESYS Control Win V3 X86 设备,进入通🗺讯设置【xùn shè zhì】,选择对【xuǎn zé duì】应电脑名称🔮,扫描设备

2-2-7.设置主站IP
设置【shè zhì】👄 Ethernet 主站 IP 地址【dì zhǐ】,双击 Ethernet,选择通【xuǎn zé tōng】用中的“...”,选择对应的以🚂太网🛣,如下图🚏所示【suǒ shì】

2-2-8.组态机器人模块
选择 Elite Robot 模块进行配置,选择连🤢接【jiē】🏳,根据需【gēn jù xū】要添加【yào tiān jiā】连接【lián jiē】🏳,这里连接【lián jiē】🏳 Adapter Slot 0、1、2、3、4、9、10,包含【bāo hán】 INT 输入输【shū rù shū】🗡出寄存🎠器、Float 输入输【shū rù shū】🗡出寄存🎠器、位置信息寄存器及🚜 M 虚拟输入输【shū rù shū】🗡出(通讯类👍型选择组播)


2-2-9.程序编译及下载
配置完🚆成后就【chéng hòu jiù】可以编译程序🏬、下载程序已经模块使能了【néng le】🎼,如下图【rú xià tú】

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

通讯正常【xùn zhèng cháng】💩后左侧任务🛍栏会出现绿色【xiàn lǜ sè】的图标【de tú biāo】🤾,代表通讯正常【xùn zhèng cháng】💩

机器人【jī qì rén】导入脚✝本并运行【háng】🍖,关联各 5 个💱 INT 输入输【shū rù shū】出和【chū hé】 Float 输入输【shū rù shū】出,脚本如下所示🦅(具体释【jù tǐ shì】义可参😚考 LUA 脚本手🏇册【cè】)

2-2-10.数据验证
Elite_Robot--EtherNET/IP IO 映射🍰,机器人当前【dāng qián】🐼位置信【wèi zhì xìn】息【xī】 Adapter Slot 4,将机器人当前【dāng qián】🐼基座信【jī zuò xìn】息【xī】发送到 Adapter Slot 4 变量中😂

Float 输出📞,将机器【jiāng jī qì】人数值🥊发送到 codesys 变量【biàn liàng】🎫,D010-D014 关联到 Adapter Slot 2 输出📞前【qián】 5 个数值,数据变化一致【huà yī zhì】

Float 输入,将 codesys 数值发🙊送到机🍡器人变【qì rén biàn】量,D000-D004 关联到【guān lián dào】 Adapter Slot 3 输入前【shū rù qián】 5 个数值,数据变【shù jù biàn】🧙化一致🏀


INT 输出【shū chū】,将机器人数值发送到【fā sòng dào】 codesys 变量,I010-I014 关联到 Adapter Slot 0 输入前 5 个数值🕸,数据变🏐化一致【huà yī zhì】🚡

INT输入【shū rù】🥡,将🤑codesys数值发【shù zhí fā】🧑送到机器人变量【liàng】,I000-I004关联到Adapter Slot
1 输出前 5 个数值,数据变化一致

M 虚拟输入【rù】🚫,将 Codesys 的 Bool 数值发【shù zhí fā】🕖送到机🕚器人 M 虚拟输入【rù】🚫变量,M912开始的 M 关联到🍬 Adapter Slot 9 输出的 Bool 值【zhí】😻(具体参考🥏 Adapter Slot 9 定义数值【zhí】😻),数据变【shù jù biàn】化一致【huà yī zhì】

M 虚拟输【xū nǐ shū】🚥出🐡,将机器人【rén】🚣 M 虚拟输【xū nǐ shū】🚥入变量【rù biàn liàng】数值😁发送到 Codesys 的 BOOL 值😁,M400开始的🏥 M 关联到 Adapter Slot 10 输入的 BOOL 值😁(具体参考【kǎo】💫 Adapter Slot 10 定义数【dìng yì shù】值😁),数据变化一致

M 虚拟输🚊出👡,将机器【jiāng jī qì】人🔷 M 虚拟输🚊入变量数值【shù zhí】📪发送到 Codesys 的【de】 BOOL 值【zhí】📪,M400开始的【de】🔗 M 关联到 Adapter Slot 10 输入的【shū rù de】 BOOL 值【zhí】📪(具体参【jù tǐ cān】考🌝 Adapter Slot 10 定义数值【shù zhí】📪),数据变化一致

3. 常见问题解答
3.1问:设置主站【zhàn】〽IP的时候不成功😬、页面提示🏑“没有到【méi yǒu dào】设备的连接【lián jiē】,请重新扫描网【sǎo miáo wǎng】络👀”
答:需要先打开PLC,再进行主站加载
3.2问【wèn】:其中有🕊一台机🛌器人通讯不成【xùn bú chéng】功【gōng】,状态栏一直红🚥色报警
答:检测一下机器🤙人📎IP与电脑是否在🐉同一网段【duàn】,ping能否ping通【tōng】,配置页【pèi zhì yè】面是否有设置👛对应的【duì yīng de】🐇机器人【jī qì rén】📎IP.
3.3问:通讯都🚓正常了【zhèng cháng le】就是读【jiù shì dú】取不到⏸任何数【rèn hé shù】据💇
答【dá】:检测一下通讯🧞使能【shǐ néng】🍺是否有打开🏹,没有打【méi yǒu dǎ】开🏹的情况【de qíng kuàng】下需🐒要打开🏹使能【shǐ néng】🍺
3.4问:输入了预备值当前值没有变化
答:需要在调试页面进行手动写入值
4. 附录
EIP.LUA