codesys与两台EC机器人进行EIP通讯
1. 简介
EtherNet/IP 是一种【shì yī zhǒng】基于以太网技🎉术的工【shù de gōng】业自动化网络【huà wǎng luò】协议🉑,是以太【shì yǐ tài】🐐网技术【wǎng jì shù】在工业领域的应用【yīng yòng】。它是由罗克韦尔自动😿化公司(Rockwell Automation)开发的【kāi fā de】,是一种【shì yī zhǒng】开放的📑网络标🤲准【zhǔn】,可以用于连接各种各样的设备🎦,如🛄 PLC、传感器【chuán gǎn qì】、执行器🏧、HMI 等。
EtherNet/IP 协议基【xié yì jī】于🌸 TCP/IP 协议栈,采用了【cǎi yòng le】🐟面向连接和面【jiē hé miàn】向无连⬅接的通【jiē de tōng】信方式,可以实现高速【xiàn gāo sù】的数据🏸传输和实时的控制💕。它可以支持🍰 10Mbps、100Mbps和 1000Mbps 三种传输速率,距离可【jù lí kě】以达到 100 米或更远。同时,EtherNet/IP还具有【hái jù yǒu】很强的【hěn qiáng de】📞灵活性【líng huó xìng】和可扩【hé kě kuò】展性【zhǎn xìng】😵,可以支持🍰多种拓扑结🈂构和协🥔议适配【yì shì pèi】⬇器。
EtherNet/IP 协议的🏅主要特【zhǔ yào tè】点包括:
高速传【gāo sù chuán】输:EtherNet/IP 可以支持多种传输速率【lǜ】🏻,可以满足不同🏒应用场【yīng yòng chǎng】📧景的需🖖求【qiú】。
实时性🕛强【qiáng】:EtherNet/IP 可以实现高速数据传🥃输和实【shū hé shí】💿时控制【shí kòng zhì】。
灵活性强:EtherNet/IP 可以支持多种【chí duō zhǒng】🌼拓扑结【tuò pū jié】❓构和协议适配【yì shì pèi】📁器。
易于集成:EtherNet/IP 是一种开放的【kāi fàng de】网络标【wǎng luò biāo】准【zhǔn】🙌,可以与🌾各种各🗺样的设【yàng de shè】💰备集成使用。
可扩展📫性强:EtherNet/IP 可以通过加入【guò jiā rù】🚘新的协【xīn de xié】议适配【yì shì pèi】🔴器和功能【néng】❎模块来扩展网络功能【néng】❎。
安全性【ān quán xìng】好【hǎo】:EtherNet/IP 支持多种安全机制🍆,如【rú】🌾 VLAN、VPN、IPsec 等🕸
EC 系列产【xì liè chǎn】品支持【pǐn zhī chí】以太网🔂/IP 从站应用🌵。 如果控制器作【zhì qì zuò】为从设【wéi cóng shè】备运行🥟,则无需进行其🎭他置。
在通信【zài tōng xìn】🌼配置过程中可【chéng zhōng kě】🧕能使用的术语【de shù yǔ】描述如下💢:
1.Originator: 向从站🌧发起连【fā qǐ lián】接请求的一方,一般是【yī bān shì】📣主站或客户端【kè hù duān】📿设备。
2.Target:终端节【zhōng duān jiē】👥点或者是从站设备,被请求建立连【jiàn lì lián】👙接的一方【fāng】🌽。
3.O->T:指示发起者到【qǐ zhě dào】🔍目标节【mù biāo jiē】点的方向📔,用于描述数据🛍报由主站发送【zhàn fā sòng】到从站。
4.T->O:指示从目标到【mù biāo dào】😳发起者📂的方向,用于描【yòng yú miáo】述数据报由从【bào yóu cóng】站发送🐍到主站。
5.RPI: Requested Packet Interval, 数据报📪的请求【de qǐng qiú】💬周期,单位为【dān wèi wéi】 ms。
6.Connection Timeout Multiplier: 其值表【qí zhí biǎo】💃示的乘🍱数与🌕 RPI 相乘得【xiàng chéng dé】到数据【dào shù jù】报传输的超时【de chāo shí】间💴,一般由主站设置。
7.point to point: 一种主🎣从站的😘连接类【lián jiē lèi】型【xíng】,点对点连接。
8.Multicast:一种主从站的【cóng zhàn de】连接类型【xíng】, 由一个从站对多个主🔼站传播【zhàn chuán bō】。(目前暂🆓不支持【bú zhī chí】👀这种链🍯接)。
9.EDS: Electronic Data Sheet,一种包【yī zhǒng bāo】💜含从站所有配置信息的文件【de wén jiàn】💢,主站必【zhǔ zhàn bì】🔊须读取【xū dú qǔ】📜这个配置文件🗯才能生【cái néng shēng】成对从站的正确请求报文。
Ethernet/IP 部分寄存器被【cún qì bèi】🍿划分为11 个组(也称 slot),每个【měi gè】🔰 slot 实质是【shí zhì shì】一个【yī gè】 Ethernet/IP 连接,且都包🕔含有 O->T与【yǔ】🌤 T->O 两个方【liǎng gè fāng】向的数据,其中只有一个【yī gè】🚂方向上承载的数据为📠有效数👼据,而寄存🍥器数据最终会在哪一【zài nǎ yī】🏏个方向【gè fāng xiàng】传【chuán】🚪输取决于寄存器的🔛实际意📄义。如从控【rú cóng kòng】制器的视角😾,所有类【suǒ yǒu lèi】型的输👬出寄存【chū jì cún】器会在【qì huì zài】T->O 方向传【chuán】🚪输,此时另【cǐ shí lìng】一个【yī gè】方向 O->T存的意【cún de yì】🐥义可以【yì kě yǐ】认【rèn】为是对😼 T->O 方向数据的确【jù de què】认【rèn】;相对😼的,所有类【suǒ yǒu lèi】型的输👬入寄存【rù jì cún】🎡器会在【qì huì zài】 O->T 方向传【chuán】🚪输具体【shū jù tǐ】每个【měi gè】🔰 slot 讲义如下(具体可😸参照【cān zhào】🙇 elite 通讯手🐑册)
Adapter Slot 0: 32 个 32 位🦑 int 输出寄👃存器【cún qì】,地址范😽围【wéi】 [0,31] 传输方【chuán shū fāng】向 T->O(elite--codesys)
Adapter Slot 1: 32 个 32 位【wèi】 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ū】方😐向【xiàng】 T->O(elite--codesys)
Adapter Slot 3: 寄存器🏰类型【lèi xíng】🕛 32 个【gè】 float 输 入寄存🕡器🏰,地址【dì zhǐ】 范围 [0,31] 传输方向 O->T(codesys--elite)
Adapter Slot 4 寄存器【jì cún qì】类型 52 个【gè】 float 输 入寄存🈳器,地址【dì zhǐ】🤨 范围🤷 [0,51]
主要包含机器人位置速度等信息
传输方【chuán shū fāng】🧜向 T->O(elite--codesys)
Adapter Slot 5 寄存器👫类型【lèi xíng】🏋 4 个 32 位状态 寄存器👫,地址范【dì zhǐ fàn】🍥 围【wéi】 [0,3]
主要包含系统输入输出数字 IO 状态
传输方向【xiàng】🛷 T->O (elite--codesys)
Adapter Slot 6 寄存器【jì cún qì】🔹类型【lèi xíng】😹 8 个【gè】💘 32 位状态 寄存器【jì cún qì】🔹,地址范 围 [0,7]
主要包含系统模拟量输入输出值
传输方✅向【xiàng】 T->O(elite--codesys)
Adapter Slot 7 寄存器💲类型 18 个 32 位状 态寄存【tài jì cún】🤪器,地址 范围【fàn wéi】 [0,17] 主要包【zhǔ yào bāo】🦅含安全【hán ān quán】🔚参数状态及值
传输方🛣向【xiàng】 T->O(elite--codesys)
Adapter Slot 8 寄存器【jì cún qì】🌒类型 46 个 32 位状 态寄存【tài jì cún】🥃器🌒,地址😷 范围【fàn wéi】 [0,45] 主要包🗨含时间【hán shí jiān】等信息
传输方向【xiàng】🌿 T->O (elite--codesys)
Adapter Slot 9 寄存器【jì cún qì】🐫类型 64 个【gè】💨 8 位状态🗯 寄存器【jì cún qì】🐫,地址范 围 [0,63]
主要包含输入 M 变量,M912 开始
传输方🏇向【xiàng】 O->T(codesys---elite)
Adapter Slot 10
寄存器【jì cún qì】🐘类型【lèi xíng】👏 64 个 8 位状态 寄存器【jì cún qì】🐘,地址范【dì zhǐ fàn】 围 [0,63] 主要包含输出【hán shū chū】 M 变量🏵,M400 开始传输方向 T->O(elite--codesys)
2. 配置及验证步骤
2-1.硬件接线与网络配置
这里网线连接采用了交换机,参考下图

机器人【jī qì rén】🥣1、2与电脑需要在同一网【tóng yī wǎng】段💹,并且不同地址【tóng dì zhǐ】🔴,如图
电脑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 软件【ruǎn jiàn】,点击新建程序【jiàn chéng xù】⚡,如下所示

选择【xuǎn zé】 project-Empty project,可根据🔴需要命名,点击确🌠定【dìng】

2-2-3.安装EDS文件
加载安👙装【zhuāng】✝ elite 的EDS 文件【wén jiàn】🤒,在 Codesys 菜单栏-工具🎨-设备存储【chǔ】🛂库【kù】,点击安【diǎn jī ān】装【zhuāng】✝,导入附件中对应 EC 机器人【jī qì rén】 eds 文件【wén jiàn】🤒。导入后文件【wén jiàn】会🐡出现在🕘 EthernetIP 总线下,同时显【tóng shí xiǎn】示文件【wén jiàn】🤒已经安【yǐ jīng ān】装【zhuāng】✝到设备【dào shè bèi】存储【chǔ】🛂库【kù】


2-2-4.添加设备
选择新🛺建设备 Untitled1,右键点【yòu jiàn diǎn】击添⛪加设备,选择对🥒应的 CODESYS Control Win V3 X64 中的【zhōng de】 PLC,点击添【diǎn jī tiān】⛪加设备

选择新🈲建的 PLC,点击右键选择【jiàn xuǎn zé】添加设😍备【bèi】

2-2-5.设备配置
选择现【xuǎn zé xiàn】📦场总线💠--EthernetIP--以太网适配器--Ethernet,点击右【diǎn jī yòu】🧙下角添加设备【jiā shè bèi】

选择设备栏🎯 Ethernet(Ethernet),点击右键选择【jiàn xuǎn zé】🔟添加设【tiān jiā shè】备,选择 Ethernet/IP Scanner,点击右下角添🖨加设备【jiā shè bèi】

选择🏆 Ethernet/IP Scanner,点击右【diǎn jī yòu】❌键选择【jiàn xuǎn zé】🏆添加设【tiān jiā shè】备,选择🏆 Elite Robot,点击右【diǎn jī yòu】❌下角添加设【tiān jiā shè】备

将【jiāng】 EC 机器人【jī qì rén】🌖设备添加【tiān jiā】后,点击 Elite Robot,选择通【xuǎn zé tōng】🙏用设置从站【cóng zhàn】(机器人【jī qì rén】🌖)IP地址,与机器【yǔ jī qì】⬛人🏩 IP 地址一【dì zhǐ yī】😰致,如下图🍼所示(重复两🕗次,添加【tiān jiā】2台机器人【jī qì rén】🌖)

2-2-6.启动PLC
找到电【zhǎo dào diàn】🖤脑右下角图标处【chù】,右键选中🏀,Start PLC

双击👬 CODESYS Control Win V3 X86 设备【bèi】,进入通讯设置,选择对【xuǎn zé duì】应电脑🍱名称,扫描设【sǎo miáo shè】🌾备【bèi】

2-2-7.设置主站IP
设置【shè zhì】🤲 Ethernet 主站 IP 地址【dì zhǐ】,双击🦌 Ethernet,选择通【xuǎn zé tōng】用中的【yòng zhōng de】“...”,选择对🕥应的以太网,如下图🍤所示

2-2-8.组态机器人模块
选择🌚 Elite Robot 模块进【mó kuài jìn】行配置,选择🌚连接【jiē】🌏,根据需🧟要添加【yào tiān jiā】🏆连接【jiē】🌏,这里连接【jiē】🌏 Adapter Slot 0、1、2、3、4、9、10,包含⛅ INT 输入输【rù shū】🛥出寄存【chū jì cún】👮器、Float 输入输【rù shū】🛥出寄存【chū jì cún】👮器、位置信息寄存器及【qì jí】 M 虚拟输入输【rù shū】🛥出(通讯类【tōng xùn lèi】型选择🌚组播【zǔ bō】)


2-2-9.程序编译及下载
配置完♌成后就可以编译程序、下载程【xià zǎi chéng】🏿序已经模块使【mó kuài shǐ】能了,如下图【rú xià tú】🐍

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

通讯正常【xùn zhèng cháng】后左侧任务栏会出【lán huì chū】现绿色🍓的图标😡,代表通🕵讯正常【xùn zhèng cháng】

机器人👼导入脚【dǎo rù jiǎo】本并运【běn bìng yùn】行💧,关联各【guān lián gè】 5 个 INT 输入输🍌出【chū】和🏙 Float 输入输🍌出【chū】,脚本如🦊下所示(具体释【jù tǐ shì】义可参考 LUA 脚本手册【cè】🏐)

2-2-10.数据验证
Elite_Robot--EtherNET/IP IO 映射,机器人【jī qì rén】📺当前位置信息【zhì xìn xī】 Adapter Slot 4,将机器😌人当前基座信息发送【xī fā sòng】到💲 Adapter Slot 4 变量中

Float 输出,将机器人数值【rén shù zhí】发送到🚣 codesys 变量,D010-D014 关联到 Adapter Slot 2 输出前【shū chū qián】🎏 5 个数值,数据变化一致【huà yī zhì】🍧

Float 输入,将【jiāng】🐜 codesys 数值发送到机💄器人变量🤙,D000-D004 关联到【guān lián dào】 Adapter Slot 3 输入前【shū rù qián】 5 个数值🏪,数据变化一致【huà yī zhì】


INT 输出,将机器✊人数值发送到 codesys 变量,I010-I014 关联到【guān lián dào】 Adapter Slot 0 输入前🎭 5 个数值【gè shù zhí】,数据变【shù jù biàn】化一致✝

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

M 虚拟输📶入,将【jiāng】 Codesys 的【de】 Bool 数值发送到机器人【qì rén】🍀 M 虚拟输📶入变量【rù biàn liàng】,M912开始的【de】🔎 M 关联到【guān lián dào】😻 Adapter Slot 9 输出的【de】🕑 Bool 值(具体参【jù tǐ cān】🏀考 Adapter Slot 9 定义数值),数据变化一致

M 虚拟输【xū nǐ shū】🗼出【chū】,将机器🏟人 M 虚拟输【xū nǐ shū】🗼入变量♐数值【shù zhí】💋发送到 Codesys 的 BOOL 值【zhí】💋,M400开始的 M 关联到【guān lián dào】 Adapter Slot 10 输入的 BOOL 值【zhí】💋(具体参【jù tǐ cān】🖤考 Adapter Slot 10 定义数🚳值【zhí】💋),数据变化一致

M 虚拟输【xū nǐ shū】✍出,将机器🏖人 M 虚拟输【xū nǐ shū】✍入变量😩数值【zhí】🦋发送到【fā sòng dào】 Codesys 的 BOOL 值【zhí】🦋,M400开始的【kāi shǐ de】 M 关联到 Adapter Slot 10 输入的 BOOL 值【zhí】🦋(具体参【jù tǐ cān】❔考 Adapter Slot 10 定义数【dìng yì shù】⛽值【zhí】🦋),数据变化一致

3. 常见问题解答
3.1问【wèn】:设置主站⬅IP的时候不成功、页面提【yè miàn tí】示🗽“没有到🌒设备的【shè bèi de】连接,请重新【qǐng chóng xīn】扫描网络😷”
答:需要先打开PLC,再进行主站加载
3.2问🧟:其中有🌯一台机器人通讯不成【xùn bú chéng】功【gōng】,状态栏一直红色报警【sè bào jǐng】🥑
答🕙:检测一【jiǎn cè yī】下机器人【rén】🤷IP与电脑🚠是否在【shì fǒu zài】同一网📹段,ping能否【néng fǒu】ping通,配置页面是否【miàn shì fǒu】有设置💻对应的机器人【rén】🤷IP.
3.3问【wèn】🔩:通讯都🤙正常了【zhèng cháng le】😏就是读取不到任何数据【jù】
答:检测一下通讯使能是【shǐ néng shì】📭否有打【fǒu yǒu dǎ】🌲开【kāi】,没有打开【kāi】的情🌊况下需🔛要打开【kāi】使能【shǐ néng】
3.4问:输入了预备值当前值没有变化
答:需要在调试页面进行手动写入值
4. 附录
EIP.LUA