JAKA通讯使用手册
JAKA通讯使用手册
介绍
为了帮助用户更好地使用JAKA的通讯功能,本手册介绍了节卡如何与市面上主流的PLC进行数据交互。本手册中的示例仅选用了部分型号,即使是同一厂商的PLC,由于通讯参数和设备版本的差异,使用方法不完全相同,因此本手册仅供初步使用参考,更进一步的使用请联系相应PLC品牌的本地供应商。
本次验证基于以下PLC型号,表中分别给出了使用的固件版本和上位机的软件版本,推荐在已经验证过功能的版本或更高版本使用。
PLC型号 | 固件版本 | 软件版本 | |
---|---|---|---|
罗克韦尔 | 5370 L3 1769-L33ER | 20.18 | RSLogix 5000 V20.00.00 (CPR 9 SR 5) |
西门子 | 6ES7317-2EK14-0AB0 | 3.2.18 | TIA Portal V16 |
三菱 | CPU:FX5U-80MT/DSS | 1.2450 | GX Works3 Version 1.090UEtherNetIPConfiguration Tool for FX5-ENET IP V1.00A |
扩展:FX5-ENET/IP | 1.1 | ||
施耐德 | TM241CE24R | 5.1.10.10 | EcoStruxure Mchine Expert Version 2.1 |
欧姆龙 | CPU:CP1H-X40DT-D | 1.3 | CX-Programmer 9.50 |
扩展:CJ1W-EIP21 | 3.0 | ||
基恩士 | CPU:KV-8000 | 2.602 | KV STUDIO 11.62 |
扩展:KV-XLE02 | 1.400 | ||
台达 | AS228T-A | 1.12.50 | ISPSoft Version 3.15COMMGR 1.12 |
汇川 | Easy522‑0808TN | 5.67.0.0 | Autoshop V4.8.1.0 |
JAKA设备的EtherNet/IP支持作为Adapter使用,PROFINET支持作为Device使用,均为普遍意义上的从站,Modbus功能支持主从功能。由于Modbus RTU与Modbus TCP在使用流程上主要区别于连接参数,因此暂时仅对Modbus TCP进行验证,另外多数PLC厂商的Modbus主站通过梯形图触发通信,因此针对每家厂商未作重复验证。特定PLC型号未在教程中提及的通讯功能并不代表JAKA不支持,而是PLC并未集成此功能或验证困难。
环境搭建
节卡控制柜和PLC建立通讯后,PLC可以实时读取机器人的各项性能参数, 例如:机器人状态,各关节的角度、速度、温度,以及TCP的位置、速度和受力值,同时,PLC也能通过不同类型数据的寄存器与控制柜进行数据交互。
在使用PROFINET和EtherNet/IP前,需要下载如下文件:
PROFINET标准版GSDML文件: GSDML-V2.41-JAKA-JAKARobot-20210722.xml
EtherNet/IP标准版EDS文件:
控制器版本 1.7.0_46~1.7.1_26_rc: JAKARobot.eds
控制器版本 1.7.1_27_rc~1.7.2_8_rc: JAKARobot.eds
控制器版本1.7.2_9_rc及之后版本,针对MiniCab进行了认证并更新了EDS文件,与标准柜EDS文件不兼容,需区分使用:
CabV2.1:JAKA_CAB.eds
MiniCab:JAKA_MiniCab.eds
注:
GSDML文件(General Station Description Markup Language)是用于描述PROFINET协议工业网络设备特性的文件格式。它通常用于配置和管理工业以太网设备。GSDML文件包含了设备的参数、功能和通信特性等信息,在使用JAKA的PROFINET功能前需要在主站导入此文件。
EDS文件(Electronic Data Sheet)是一种用于描述Ethernet/IP协议设备通信协议、对象字典和参数配置的文件格式。它通常用于配置现场总线设备。EDS文件提供了设备的详细描述,在使用JAKA的EtherNet/IP功能前需要在主站导入此文件。
设备间的简易连接示意如下,需要保证PLC、上位机和控制柜在同一网段内,下文所述的使用方法和步骤均基于三者之间可互相访问。

节卡控制柜通讯功能建议使用控制柜的底部网口,JAKA Zu App(下文简称App)也可以通过底部网口与控制柜连接,但为了避免App与控制柜的数据传输影响通信功能,建议App使用面板上网口或WIFI与控制柜相连。
注:底部网口需要处于处于激活状态(连上电脑或路由器),才能使用相关通信功能。
使能EtherNet/IP,PROFINET
由于Ethernet/IP及PROFINET使能步骤基本一致,因此一并说明。
默认情况下,Ethernet/IP及PROFINET功能处于关闭状态,使能的具体步骤如下:
步骤一:打开最新版本JAKA Zu App,点击App右上角的”未连接“图标进入机器人连接界面。

步骤二:点击想要连接的机器人并输入管理员密码(默认密码为jakazuadmin)使App与控制柜相连。

步骤三:在App界面, 点击“设置”→“硬件与通讯”→“Ethernet/IP设置”或“PROFINET设置”, 开启使能开关,并点击“确定”,手动重启控制柜。重启控制柜步骤如下:
a. 回到主界面,点击”关闭本体电源“→位于界面右上角的”关闭“按钮,关闭控制柜;
b. 控制柜关闭后,短按手柄开机按钮,待蜂鸣器响后,控制柜开机;
c. 打开JAKA Zu App,重新连接机器人,具体操作见步骤一和步骤二;
d. 进入主界面,点击“打开本体电源”。
重新连接控制柜后可在“EtherNet/IP设置”或“PROFINET设置”界面查看状态。状态为“未成功连接主站”,则EtherNet/IP已成功使能,等待主站连接。

使能 Modbus TCP/IP,Modbus RTU
由于Modbus TCP/IP及Modbus RTU使能步骤基本一致,因此一并说明。
默认情况下,Modbus TCP/IP及Modbus RTU功能处于开启状态,使能的具体步骤如下:
步骤一:打开最新版本JAKA Zu App,点击App右上角的”未连接“图标进入机器人连接界面。

步骤二:点击想要连接的机器人并输入管理员密码(默认密码为jakazuadmin)使App与控制柜相连。

步骤三:在App主页, 点击“设置”→“硬件与通讯”→“Modbus设置”。
a. 若开启Modbus TCP/IP,则勾选Modbus TCP/IP前的单选按钮,输入端口号(0~65535),点击“确定”;
b. 若开启Modbus RTU,则勾选Modbus RTU前的单选按钮,输入从站节点号(1~128),选择波特率、数据位长度、停止位长度、校验方式,点击“确定”。

IO数量配置说明
EtherNet/IP
在地址分配表中,数据类型排列的顺序为:DIO布尔型、AIO整型和AIO浮点数型。其中:
DIO:布尔型,占1位(bit),每8个DIO组成一个字节,因此DI和DO的IO数量配置需为8*n个,n为正整数,使对应的DI和DO数据长度为整数字节,
AIO:整型和浮点数型均占4个字节(byte)。
按照使用场景,EtherNet/IP的IO数量是可配置的。在usersetting中,如果Mode = 0,代表EIP使用标准的IO数量,如果Mode = 1,代表可以配置IO数量。
scanner需要导入eds文件以与控制器的adapter匹配,目前JAKA提供以下eds文件,其含义和应用场景分别为:
JAKARobot.eds
标准版的eds文件,参数不可配置不可修改,为固定值,具体IO数量定义在usersetting中:
[EIP]
Enable = 1
Mode = 0
DI_NUM = 64
DO_NUM = 64
AI_INT_NUM = 24
AI_FLOAT_NUM = 24
AO_INT_NUM = 24
AO_FLOAT_NUM = 24
其中DO和AO输出的数据长度总和最大为204个字节, DI和AI输入的数据总长度总和最大为492个字节。
JAKARobotSetup.eds
定制版本的eds文件,IO数量可以配置,需要在控制器内将usersetting的mode改为1,再修改IO数量。
其中DO和AO输出的数据长度总和最大为492个字节, DI和AI输入的数据总长度总和最大为492个字节。
PROFINET
节卡机器人PROFINET IO数据传输操作,请参考节卡机器人地址分配表,由4个表组成,分别是表格说明、Robot2PLC、PLC2Robot以及脚本函数。在Robot2PLC和PLC2Robot表中定义的每个数据占4个字节,即0 ~ 31 位,重点内容如下:
传输类型: R->P (Robot->PLC)或者传输类型 P->R(PLC->Robot),表明了数据传输的方向;
单元模块(Unit Group): 表明了数据类型和所属模块,数据类型为:机器人状态、安全设置,属于第一个模块。比如:1_R->P_Robot_Safety, 代表数据模块编号为1,传输方向R->P (Robot->PLC),Robot表示机器人状态,Safety表示安全设置,32 字节为已使用地址,4 字节为预留地址。 其他的单元模块内容与此类似。
PLC设置: 包括各个单元模块对应的插槽、子插槽编号和PLC上地址,如1_R->P_Robot_Safety对应1号插槽,1号子插槽,PLC输入I地址为0 ~ 35 字节。

PLC通讯实例
罗克韦尔5370 L3 1769-L33ER
所需软件:RsLinx Classic,BOOTP-DHCP Server,RsLinx Classic Launch Panel,RsLogix 5000,JAKA Zu App,Wireshark(非必须)
EtherNet/IP
在不清楚PLC当前IP地址的情况下,可以使用Wireshark确认PLC的IP地址,使用windows自带的cmd工具ping设备以测试PLC是否处于组网中。如果与控制器和上位机不在同一网段内,请跳至步骤二,尝试修改PLC的IP地址;如果已经处于同一网段内,则至步骤四继续执行。
打开软件RsLinx Classic,点击Configure Drivers菜单,在弹出的对话框中, 选择Ethernet/IP Driver, 点击Add New,按照默认配置,完成后点击Ok。
点击网络节点图标,弹出WRWho对会话框。点击ABETHIP_1,会刷新出PLC和Ethernet/IP的模块信息,连接正常表示已正确组网。右键点击PLC可以修改其IP地址,使其与控制器和上位机处于同一子网段内。

- 打开BOOTP-DHCP Server软件,将自动搜索与电脑连接的设备。

注:如自动搜索未发现PLC的MAC地址,请关闭电脑的防火墙功能,手动输入MAC地址。在下半栏选中IP地址,然后点击Disable BOOTP/DHCP。
- 打开RsLinx Classic Launch Panel软件, 点击Start。

- 点击菜单栏Tools,选择安装EDS文件,注册EDS文件, 一直点击下一步,直到完成配置。


- 打开RsLogix 5000软件,创建新项目。选择所使用的PLC型号,输入项目名称,浏览项目保存位置,点击确认。

- 在左侧栏右键点击以太网,选择新建module,在弹出的窗口中找到模块JAKA Ethernet/IP Adapter, 点击创建,输入模块名称,注意此处IP地址需要与控制柜的Ethernet/IP地址相同。



- 点击更改按钮,可设置数据的类型,为了便于数据显示,这里选择DINT类型。

注:如果使用定制版本,需要手动配置EIP的模块,则配置如下:
PLC到EIP的输出ID为100
EIP到PLC的输入ID为101
PLC输出最大字节数为492字节
PLC输入的最大字节数为492字节
- 点击网络节点,弹出活动页对话框,选择 PLC模块, 然后点击联机,弹出对话框,下载程序。

- 选择联机,使PLC处于运行模式,连接状态正常之后,右键点击控制器标签,选择监控Tag,可以看到PLC从机器人读取到了部分数据。


- 在App上打开Ethernet/IP数字输出DO1和DO2按钮,设置整数 AO1为123。

- 查看RsLogix 5000相应的数据,,I.Data[72]和I.Data[75]显示相应的数据正确。数据的地址可参考文件节卡机器人EthernetIP地址分配表确定。

Modbus TCP
主站
AB的PLC自身均不支持Modbus TCP通讯,使用AB PLC需要配第三方的协议转换网关将ModBusTCP协议转换为AB自己的Ethernet/IP协议。因此罗克韦尔PLC首先必须有具备EtherNet/IP协议的以太网接口。
从Logix5000编程软件15版本(实测20版本及以上)以后,对于CompactLogix和Controllogix系列的PLC,支持了使用PLC程序编写出来的ModbusTCP协议通讯,并且可作为Master和Slave与其他第三方设备进行通讯,AB官方提供的例程分为Master和Slave两部分,可按需分别使用。Master功能部分可能会占用PLC内200-230K的存储空间,Slave功能部分可能会占用PLC的280-300K空间
由上可知,罗克韦尔不支持原生的Modbus TCP协议,需要通过其EtherNet\IP的以太网端口实现。
可以自行编写PLC程序来支持Modbus,也可在罗克韦尔下载示例程序,下面对官网给出的示例程序作简要验证。
- 新建工程,选择MainRoutine,在右侧的空白区域点击右键选择Import Rungs

导入示例程序中的.L5X文件,可以修改程序内参数的名称,通过Tags标签的Final Name选项。
image-20230518092750982 点击ok导入,在Modbus TCP Client块内右键点击,选择Monitor。

- 对于5370系列而言,LocalSlot的值为0,将其他条目如EtherNet/IP的端口地址、Modbus从站的ip地址和端口号按实际进行填写

- 回到MainRoutine选项,将inp_Enable置为1,代表启动Modbus Client功能,对于RSLogix 5000而言,同时需要将程序编译并下载到PLC,最后切换到运行状态

- 监控表可以设置Pollinterval(刷新时间)、Transtype(功能码)、Stationid(从站ID)、BeginAddress(起始地址)、Count(地址数量)等基本参数,此外还需要设置LocalAddress,此参数代表与Modbus Slave的起始地址对应的Modbus Client的起始地址。

- Modbus Client同样使用4个寄存器存放数据,完成起始地址的映射后,可以直接修改寄存器内的数据,如此处将Slave的起始地址设为了40,修改coils下的数据可以发现,成功更新到了控制器的内部

西门子 6ES7317-2EK14-0AB0
所需软件:TIA Portal V15,JAKA Zu App
PROFINET
- 打开TIA Portal V15软件,点击创建新项目,弹出新建项目窗口后,更改项目名称(如jakaPNIO),然后点击浏览按钮,选择存储位置并确定,再点击创建,此时已经新建了一个项目并保存在了指定的路径下

在建立的项目窗口中,依次点击设备与网络->添加新设备->控制器, 选择PLC的型号,再点击添加
双击PLC模块,在常规的菜单下点击以太网地址,修改PLC的IP地址

- 如果使用了PLC S7-300则需要修改IO地址映射的大小,使地址映射值大于688字节,IO地址映射小于此值可能会导致数据丢失,因为我们PROFINET IO的最大地址范围为0到688字节。

- 在菜单栏选项菜单中,点击管理通用站描述文件(GSD),弹出相应的窗口,点击浏览按钮,找到文件GSDML-V2.41-JAKA-JAKARobot-20210722.xml的路径,载入后选中该文件,然后安装, 等待安装完成,关闭窗口


- 在左侧栏双击设备和网络,在右侧栏硬件目录,点击其他现场设备,选择PROFINET IO, 找到JAKA_V1.0, 双击或直接拖到界面即可

- 点击PROFINET设备的未分配,选择PLC_1.PROFINET接口_1

- 单击PROFINET设备DP-NORM图标,在下方的菜单栏中选在以太网地址,修改PROFINET设备的IP地址。(注意,修改的是PROFINET设备的地址,对应的是JAKA的PROFINET虚拟设备,而非JAKA的控制柜底部网口地址,因此设置的IP必须是和控制柜在同一网段且不相同的地址)

- 点击IO周期,在更新时间的区块选择手动设置更新时间,在更新时间的下拉框中更选择PROFINET的数据更新时间,由于此设备的最小更新时间为8ms,所选择的数值应该大于或等于8ms。

- 双击名为jaka的PROFINET设备,切换到硬件设备概览的页面,在硬件目录的模块下能看到被定义的各IO数据块。将数据块拖入到对应的插槽中。


11.切换到设备和网络界面,选中PLC,依次选择编译和下载的图标。

- 双击左侧栏在线和诊断,在线访问的配置如下,然后点击转至在线, 即可观察PLC与PROFINET连接情况,以及实现PLC和PROFINET实时数据传输的观察。

- 在左边菜单栏监控和强制列表下,新建监控表,根据PROFINET IO地址分配表,对DI、AI、DO和AO对应的地址进行操作,即可实现控制器和PLC之间的数据传输。

Modbus TCP
主站
西门子同样通过编程实现Modbus TCP协议,S7-300可以使用MODBUSPN模块
- 在工艺对象内插入MB_PN_PARAM

- 进入组态进行连接设置,设定IP地址、端口号等参数

- 设置Modbus的数据区域

根据工艺对象的数据区域,添加4个区域块
创建数据块

- 调用通信指令,设置对应参数


后续操作与罗克韦尔类似,在指令中对参数进行更改,可以与Modbus TCP通信,但此功能需要西门子的授权密钥
三菱 FX5U-80MT/DSS
所需软件:MELSOFT GX Works3,EtherNet/IP Configuration Tool for FX5-ENET/IP,JAKA Zu App
EtherNet/IP
FX5U默认ip为192.168.3.250;FX5 ENET/IP默认IP为192.168.3.251
需要使用扩展模块FX5-ENT/IP开启EtherNet/IP功能,此功能需要软件EtherNet/IP Configuration Tool for FX5-ENET/IP,可在三菱官网或联系供应商获取
- 使用GX works3登录FX5-ENET/IP的配置文件


- 新建工程,选择对应型号的PLC

- 从信息模块中拖入FX5-ENET/IP,与FX5U完成拼接

- 打开三菱EtherNet/IP Configuration Tool for FX5-ENET/IP工具,点击Description中add添加配置模块并更改地址,注意与模块的ip地址保持同一网段。

- 选择device library添加eds文件。

- 将eds文件直接拖至TCP/IP下方,注意配置其IP与模块同网段。

- 可以使用配置界面的ping功能测试是否成功连接。

- 点击在线并将配置下载到模块

- 由于三菱模块需要通过程序运行,且需要功能块激活,因此配置下载完成后需要回到主界面编程触发EtherNet/IP功能,安装了FX5-ENET/IP的配置文件后,部件库出现了自带的标准功能块,选择添加模块标签

- 点击在线-当前连接目标进入连接界面

- 点击其他连接方法,打开连接目标指定画面

- 双击设备网络进行FX5U的IP设置

- 点击搜索,双击搜索出的设备并点击确认

- 点击通信测试,此时应显示已成功连接

- 添加M+FX5ENETIP_Class1SetOutputdata_01A模块测试发送数据功能,编写测试程序如下

- 此时EtherNet/IP Configuration Tool for FX5-ENET/IP已配置完成,点击全部转换并写入FX5U

- 全选并执行写入,然后重置PLC,可以通过断电的方式实现,注意此时网线应接入FX5U单元。

- 重启后将网线从FX5U拔下并接入FX5-ENET/IP,同样进入在线-当前连接目标确认与EIP模块的通信正常,然后打开监视

- 光标放在M1001开关,使用Shift+Enter改变输入信号触发此函数功能块

- 使用模块触发EIP功能后,此时App侧应显示成功连接主站

- 若在EtherNet/IP Configuration Tool for FX5-ENET/IP进行诊断,将显示设备正常在线

- 右键函数块,打开在线-软元件/缓冲存储器批量监视

- 监视D1015并更新,此时数据应更新到DI和AI

- 浮点数同理,可以通过监看窗口查看对应软元件的值,需要注意的是,软元件存储器以16位为单元存储数据,有符号整数和浮点数都需要高低位共同组成准确的32位数据

- 拖入M+FX5ENETIP_Class1Getinputdate_01A模块测试接收数据功能,编写测试程序如下,每次编译写入需要将网线插在CPU单元,即FX5U,而实际使用EIP功能时,需要将网线插回FX5-ENET/IP

- 在App修改DO和AO的值,观察值的更新

- 浮点数同理

Modbus TCP
从站
- 打开以太网设置下的Modbus/TCP设置,双击对象设备连接配置设置

- 将Modbus/TCP连接设备拖入网络拓扑中,反映设置并关闭

- 此时Modbus/TCP设置应显示使用,双击详细设置进入软元件分配,分配完成后点击确认,再点击应用

- 将修改后的模块参数写入PLC内,然后重置PLC

- App此时可以运行扩展IO模块,打开软元件缓冲区批量监视,查看值是否更新到对应地址



主站
- 点击模块参数的以太网端口,双击对象设备连接配置设置的详细设置进入配置页面,拖入Active连接设备,选择通信手段为通信协议,设定端口号和IP等信息,设置完成后反映设置并关闭,点击应用

- 点击工具-通讯协议支持功能

- 选择以太网,点击确定

- 点击添加,选择Modbus/TCP,并添加协议名。

- 可以多次添加协议名,最多支持64个协议号

- 如果不熟悉软元件的分配方法,可以直接自动分配数据包的软元件,右键空白区域,点击软元件批量设置

- 指定软元件的协议号范围和起始软元件号,点击确定

- 此时显示变量已设置,也可点击工具-设置软元件一览显示查看具体的分配方法

- 以功能码为15的分配规则,D304为连接编号,D305为模块ID,D306为起始地址,D307为写入长度,D308为可变长度,指定写入数据的字节长度,D309-D1292为写入的具体数据。

- 分配完成后将此模块写入PLC,注意此处的设置为单独写入,从GX Works3主界面执行的写入并不会写入此模块的信息

写入完成后需要编写程序触发此通信协议,三菱PLC作为Modbus主站时主要用到三条指令,可以参考MELSEC iQ-F FX5用户手册(MODBUS通信篇),指令的详细含义可以按F1查看官方的指令帮助
此处介绍一种通信方法,可根据自己的逻辑需求修改程序,使用SP.SOCOPEN打开连接

- 对连接进行设置,主要依据上述的软元件分配表的地址

- 使用SP.ECPRTCL调用通信协议编号进行写入

- 使用SP.SOCCLOSE关闭连接

- 点击转换程序并写入PLC,此程序逻辑会循环使用通信协议编号1,由于SP.ECPRTCL不会打开关闭连接,因此使用时需要结合SP.SOCOPEN和SP.SOCCLOSE,点击监视并打开软元件/缓冲存储器批量监视

- 可以看到,值正确地更新到了对应的寄存器

- 针对02功能码,情况类似,确认软元件的分配并修改程序即可

- 主要需要将协议编号和连续读取编号修改为2

- 同样转换程序并下载到PLC,可以看到DO的值更新到了D1307中

施耐德 TM241CE24R
所需软件:Machine Expert,JAKA Zu App
EtherNet/IP
首先需要确保TM241CE24R的固件版本与Machine Expert匹配,否则无法正常使用,如果版本不对使用controller assistant升降级固件版本。
- 使用Machine Expert添加eds文件



- 双击控制器点击刷新可以看到当前连接设备,也可以通过网线直连修改外部设备的IP地址

- 修改时勾选永久保存

- 此时已经成功修改,将TM241CE24R连接在交换机,JAKA App与控制器也接入此交换机并保持均在同一网段

- 右键点击Ethernet_1添加设备

- 选择Modbus TCP下的Industrial Ethernet Manager

- 继续右键点击Industrial Ethernet Manager添加JAKA设备

- 编译并登录设备,如果提示安全相关,无视并按ALT+F8继续登录

- 改为始终使能后,点击开始

- 此时App侧应显示成功连接主站

- 修改DO和AO的值,可以看到对应的Input Exclusive owner[144]、[150]、[154]和发生了变化,这是由于从ROBOT到PLC的数据包含了ROBOT的状态数据,因此DO是从72开始的,JAKA的EtherNet/IP使用32位数据,而Machine Expert使用16位数据,因此最终DO的地址从144开始

- 在输出中使用ctrl+F7将值传递给机器人,值同样正常更新

Modbus TCP
主站
- 右键点击Ethernet_1添加modbus slave设备

- 设置主站的IP地址等信息

- 登录并开始,监视数据

- TM241CE24R支持的modbus从站的保持寄存器的功能码为03、06和16,而输入寄存器支持的功能码为17,JAKA机器人modbus主站暂不支持此功能码,使用前需要查阅官方文档
欧姆龙 CP1H-X40DT-D
所需软件:CX-Programmer,JAKA Zu App
CP1H的CPU单元本身不带EIP的功能,因此需要装扩展单元,在此之前需要先再装一个CJ1W-EXT01扩展单元以支持扩展,安装后的产品如图:

由于欧姆龙的modbus均属于无协议通讯,也即通过软件实现其通信,而且需要额外选装硬件,如需要CJ1W-ETN21支持modbustcp和 CP1W-CIF11支持modbusrtu,因此不对其做验证。
EtherNet/IP
- 使用CX-Programmer作为上位机,新建工程

- PLC默认的地址为192.168.250.1,先使用网线直连,切换到在线模式并开启编程才能修改参数

- 创建IO表,初始化CPU总线

- 此时有了EIP模块

- 修改EIP21模块的IP地址后,将参数从PC传递至单元并重启,使用修改的IP地址连接PLC

- 启动专用的应用程序,继承启动

- 点击“Network Confihurator”进行EIP设定

- 点击“Install”安装eds文件

- 点击“Upload”

- 将导入的设备拖到总线,点击“Change Node Address…”修改IP地址

- 连接注册:点击“JAKA Robot Ethernet/IP Adapter”→“Connections”

- 进行变量的设置

- 设置完成后将参数修改到PLC

- 点击“Dowland”

- 无视警告并继续

- 下载完成后将重启PLC

- 此时App侧应显示成功连接主站,将PLC的工作模式切换为监视,可以实现值的传递


基恩士 KV-8000
所需软件:KV STUDIO,JAKA Zu App
本例采用KV-8000作为CPU单元,KV-XLE02作为扩展单元
EtherNet/IP
- 使用KV STUDIO新建工程,在初次使用以太网单元时,需要打开单元编辑器

- 拖动单元到KV-8000上,如果已经连接CPU单元,也可以选择直接从PLC读取单元组态

- 设置端口的协议为scanner,(此处如果不设置将不会显示EtherNet/IP设定),分别设置KV-8000和KV-XLE02的IP地址,最后应用设置。

- 回到KV-STUDIO,选择监视器/模拟器的通信设定,选择EtherNet/IP或USB进行扫描,需要将PC与PLC使用网线或USB连接。选择EtherNet/IP进行扫描时,选择网卡并执行,可以扫描出对应的设备,扫描到设备后点击选择设备。

- 点击转换到PLC,选择执行,执行后会将单元编辑器内的以太网设定也一并写入PLC,如果在单元编辑器内修改了KV-8000的IP地址和KV-XLE02的通信协议,写入完成后设备的网络参数也会发生改变。另外KV-XLE02的两个端口的网络部须保持不同。

- 导入JAKA的eds文件

- 本例将port 1的IP地址设置为192.168.1.10,重复上述选择设备的步骤,将网线接入KV-XLE02,选择此设备,回到单元编辑器,点击EtherNet/IP设定

- 将JAKA设备的IP地址设置为与PLC同一网段,本例中为192.168.1.20/24,点击自动设定,将自动扫描网络拓扑

- 回到KV STUDIO,将EtherNet/IP设定和单元编辑器下载到PLC,此时App测应显示成功连接主站。

- 回到单元编辑器的EtherNet/IP设定,点击Exclusive Owner的Edit,可以选择自动分配软元件或手动分配,此处选择自动。基恩士定义的EtherNet/IP设备的通信数据的数据类型为位和字,数据的显示方式根据类型变化。针对非基恩士的设备,使用自动分配,选择字设备


- 保存设置,由于JAKA的数据默认占32位,而KV-STUDIO的数据类型默认为WORD,占16位,当使用WORD的数据类型时,JAKA的DI对应到PLC从IN_101[144]开始,DO从OUT_100[0]开始,打开监视窗口

- 在App和KV STUDIO修改参数,查看各软元件和App的值,由于KV STUDIO默认的数据类型为WORD,因此使用时需要进行高低位的拼接处理。

Modbus TCP
从站
- KV-XLE02作为从站时不需要发送接收用的梯形图程序,进入单元编辑器打开PROTOCOL STUDIO开关

- 在单元设置中对Modbus的所有相关参数进行配置,如IP地址、modbus TCP端口号、线圈和寄存器地址等。默认值中,只读软元件(输入/输入寄存器)被设定为与可读写软元件(线圈/保持寄存器)相同的分配。

- 将单元编辑器的配置写入PLC,启动监视模式,此时从站成功开启,选择从站的寄存器地址进行监视,需要注意的是,默认情况下KV-XLE02的只读软元件(输入/输入寄存器)被设定为与可读写软元件(线圈/保持寄存器)相同的分配,可以按照需求自行分配。此处为了区分做了一定区别。

- 打开JAKA扩展IO,点击运行,修改参数后再KV STUDIO读取和发送对应地址的参数,可以看到参数的同步更新

台达 AS228T-A
所需软件:Delta ISPSoft,HWCONFIG,JAKA Zu App
EtherNet/IP
针对台达的AS系列,需要从HWCONFIG打开EIP BUILDER,否则没有AS系列的选项,如果是更新的版本,可以直接在HWCONFIG完成EIP的配置和网络拓扑
新建工程,双击HWCONFIG

- 安装设备描述文件管理工具

- 右键单击PLC设备,选择通讯软件的EtherNet/IP

- 搜索导入的jaka描述信息,将其拖拽到组态网络内,然后双击jaka设备修改IP地址

- 点击快速连线,将设备连接在同一网络内,然后下载到设备

- 点击显示数据交换,设置主站寄存器地址,最后将相关数据下载到PLC

- 下载完成后应显示成功连接主站

- 关闭并保存HWCONFIG,回到ISPSoft,点击联机模式,弹出项目比对不符,点击是执行下载

- 点击装置监控表,新建监控表,新建地址变量

- 监视DO和AO的变化,浮点数同理


- 监视DI和AI的值,根据设定,DI的值从D1000开始,浮点数同理


Modbus TCP
从站
- 官网可以找到设备标准MODBUS的地址,可以直接访问这些地址来实现对台达PLC Modbus从站的访问,端口号默认为502,其中MODBUS位址的第一位代表访问的寄存器类型

- 在装置监控表监控数据,以对Y、M、D的访问为例


主站
- 双击进入HWCONFIG,双击硬件配置,双击设备图标

- 进入数据交换的以太网,此处代表Modbus TCP端口的触发方式,修改为永久执行,当PLC上电时会始终启用,修改完成后添加数据交换规则,设置远程装置类型为标准Modbus设备,分别设置IP地址、本机起始地址、远程起始地址和数量,注意远程起始地址使用十六进制,设置完成后将参数下载到设备

- 关闭HWCONFIG,打开联机选项,监控数据表,可以观察到所有数据的更新

- 由于JAKA Modbus从站对浮点数采用的是大端显示,因此高位字节被存储在地位字节,按照台达PLC的显示规则为

汇川 Easy522‑0808TN
所需软件:AutoShop,JAKA Zu App
EtherNet/IP
- 打开AutoShop,新建工程,选择PLC型号,进入工具的通讯设置

- 点击搜索设备

- 选择导入eds文件

- 导入成功后双击设备添加组态

- 编译后下载到设备,并将设备切换到运行状态

- 此时设备应显示成功连接主站,并且配置中的EtherNet/IP显示的都是绿色

- 使用数字输出和有符号输出,可以正常更新到PLC

- 浮点数也可以正常更新

- 从PLC输出数据到机器人


Modbus TCP
从站
- Easy-522作为从站时,设置IP地址即开启了Modbus从站功能,无需设置通信协议,配置JAKA的扩展IO,使用502端口即可和Easy-522通信

- Easy-522的文档规定了线圈和寄存器可以访问的地址,线圈和寄存器共用地址。


主站
- Easy-522作为主站,添加以太网配置,参数为JAKA机器人的地址和Modbus端口

- 右键打开并新增从站站号,分别进行配置,分配映射地址后点击确认

- 打开软元件表,监视D200-D240的值,按照上图的分配,地址映射如下:
DO 0-9 : D200-209
DI 0-9 : D210-D219
AO 0-9 : D220-229
AI 0-9 : D230-D239
分别使用读取内存和写入内存可以观察值的更新

Codesys
EtherNet/IP
- 下载并安装codesys后,会在后台出现CODESYS Gateway Systray -x64和CODESYS Control Win Systray -x64,前者是网关的开关,后者为虚拟PLC的开关,使用时需要确保二者都处于运行状态。

- 打开Codesys并新建工程,选择standard project,首次使用codesys会提示创建用户,之后使用plc时均需要使用此信息进行用户登录。


- 选择CODESYS Control Win V3 x64作为PLC型号,第二栏默认即可。

- 在Codesys 菜单栏-工具-设备存储库,点击“安装”导入eds文件。导入后会出现提示,同时文件会出现在EthernetIP总线的远程适配器下。


- 在Codesys中分别逐级添加EtherNet->EtherNet_IP_Scanner。

- 双击EtherNet选择与外部设备相连的网口,点击ok。如果组网中已有匹配该eds文件的JAKA控制器,并且使能了EtherNet/IP功能,右键单击EtherNet_IP_Scanner进行设备扫描,可以看到符合条件的设备,单击复制到工程;如果未成功扫描,也可以手动添加设备并配置其IP地址。


- 依次点击登录和运行按钮,当设备栏的scanner和adapter均变为绿色后,代表设备成功连接,此时App侧应同步显示成功连接主站。





- 打开jaka adapter的IO映射将总是更新处改为使能1,修改此选项需要先退出PLC登录。再次登录可以发现,数据已经开始同步更新。


- 从控制器到PLC,分别修改DO和AO的数据,可以看到,对应地址的参数发生了更新。

- 从PLC到控制器,分别在预备值栏修改DI和AI的值,并同时按下ctrl+F7将数据提交,可以看到对应的数据发生了更新。


总结
目前已验证的PLC型号与对应的通讯协议汇总如下:
型号 | 厂商 | Modbus TCP | EtherNet/IP(scanner) | PROFINET(controller) |
---|---|---|---|---|
5370 L3 1769-L33ER | 罗克韦尔 | √ | √ | |
6ES7317-2EK14-0AB0 | 西门子 | √ | √ | √ |
FX5U-80MT/DSS | 三菱 | √ | √ | |
TM241CE24R | 施耐德 | √ | √ | |
CP1H-X40DT-D | 欧姆龙 | √ | ||
KV-8000 | 基恩士 | √ | √ | |
AS228T-A | 台达 | √ | √ | |
Easy522‑0808TN | 汇川 | √ | √ |
针对上述测定的PLC型号,通讯协议与节卡目前所支持的主从协议均良好兼容,可以正常使用。需要注意的是,由于各PLC厂家对数据类型和长度的规定,可能无法做到完全兼容,需要对数据做拼接等处理。
问题排查
出现无法连接或无法使能的情况,可以按以下条目进行初步分析和处理。
检查设备网段是否相同
检查设备是否处于同一网段,可以使用wireshark抓包分析,也可以使用ping对网络进行测试,确保设备之间通信状况良好。
从App确认EtherNet/IP的状态
修改EtherNet/IP使能状态和网络状态后,需要重启控制器以更新配置,PROFINET同理,可以在App相应设置界面查看是否处在与主站交互的状态,并是否判断连接。
检查接线是否正常
与PLC连接时,推荐使用控制柜底部网口,此时App应通过Wi-Fi或控制柜前面板网口连接,以保证通信质量。
从PLC查看状态
通过上位机软件监测PLC的状态,确认其处于运行状态并且正常工作,如Codesys数据更新的前提是打开数据映射选项的”使能1“。
重新启动PLC
部分PLC型号需要冷启动以写入通信配置或程序,如果始终无法通信,可以尝试断电重启PLC后重试。
查看终端界面打印信息
在终端界面上使用jkzuc命令重启控制器,查看EtherNet/IP的相关打印信息,包括使能状态、IO配置模式、网卡名称、IP地址、与master连接状态等,确认信息是否匹配或正常。

总线地址表
Modbus地址表
类型 (对PLC) | 名称(CAB1.0) | 名称 | 名称(MiniCab) | 数据类型 | 功能码 | 说明 | 单位 | 寄存器类型 | |
(CAB2.1) | |||||||||
8 | 通用数字输入 | DO1 | DO1 | DO1 | BOOL | 02 | 离散输入可读不可写 | ||
9 | DO2 | DO2 | DO2 | ||||||
10 | DO3 | DO3 | DO3 | ||||||
11 | DO4 | DO4 | DO4 | ||||||
… | … | … | … | ||||||
135 | DO128 | DO128 | DO128 | ||||||
136 | - | CAB DI1 | CAB DI1 | ||||||
… | - | … | … | ||||||
- | |||||||||
142 | - | CAB DI7 | CAB DI7 | ||||||
143 | - | CAB DI8 | - | ||||||
… | - | … | - | ||||||
- | - | ||||||||
151 | - | CAB DI16 | - | ||||||
152 | TOOL DI1 | TOOL DI1 | TOOL DI1 | ||||||
153 | TOOL DI2 | TOOL DI2 | TOOL DI2 | ||||||
40 | 通用数字输出 | DI1 | DI1 | DI1 | BOOL | 01/05/15 | 线圈 | ||
41 | DI2 | DI2 | DI2 | ||||||
42 | DI3 | DI3 | DI3 | ||||||
43 | DI4 | DI4 | DI4 | ||||||
… | … | … | … | ||||||
167 | DI128 | DI128 | DI128 | ||||||
168 | - | CAB DO1 | CAB DO1 | ||||||
… | - | … | … | ||||||
- | |||||||||
174 | - | CAB DO7 | CAB DO7 | ||||||
175 | - | CAB DO8 | - | ||||||
… | - | … | - | ||||||
- | - | ||||||||
183 | - | CAB DO16 | - | ||||||
184 | TOOL DO1 | TOOL DO1 | TOOL DO1 | ||||||
185 | TOOL DO2 | TOOL DO2 | TOOL DO2 | ||||||
96 | 模拟输入 | AO01 | AO01 | AO01 | UINT16 | 04 | 输入寄存器 可读不可写 | ||
97 | AO02 | AO02 | AO02 | ||||||
98 | AO03 | AO03 | AO03 | ||||||
99 | AO04 | AO04 | AO04 | ||||||
… | … | … | … | ||||||
111 | AO16 | AO16 | AO16 | ||||||
112 | AO17 | AO17 | AO17 | INT16 | |||||
113 | AO18 | AO18 | AO18 | ||||||
114 | AO19 | AO19 | AO19 | ||||||
115 | AO20 | AO20 | AO20 | ||||||
… | … | … | … | ||||||
127 | AO32 | AO32 | AO32 | ||||||
128 | AO33 | AO33 | AO33 | FLOAT32 (大端显示) | |||||
129 | |||||||||
130 | AO34 | AO34 | AO34 | ||||||
131 | |||||||||
… | … | … | … | ||||||
190 | AO64 | AO64 | AO64 | ||||||
191 | |||||||||
192 | - | CAB AI1 | - | UINT16 | |||||
193 | - | CAB AI2 | - | ||||||
194 | TOOL AI1 | TOOL AI1 | TOOL AI1 | ||||||
195 | TOOL AI2 | TOOL AI2 | TOOL AI2 | ||||||
100 | 模拟输出 | AI01 | AI01 | AI01 | UINT16 | 03/06/16 | 保持寄存器 可读可写 | ||
101 | AI02 | AI02 | AI02 | ||||||
102 | AI03 | AI03 | AI03 | ||||||
103 | AI04 | AI04 | AI04 | ||||||
… | … | … | … | ||||||
115 | AI16 | AI16 | AI16 | ||||||
116 | AI17 | AI17 | AI18 | INT16 | |||||
117 | AI18 | AI18 | AI18 | ||||||
118 | AI19 | AI19 | AI19 | ||||||
119 | AI20 | AI20 | AI20 | ||||||
… | … | … | … | ||||||
131 | AI32 | AI32 | AI32 | ||||||
132 | AI33 | AI33 | AI33 | FLOAT32 (大端显示) | |||||
133 | |||||||||
134 | AI34 | AI34 | AI34 | ||||||
135 | |||||||||
… | … | … | … | ||||||
194 | AI64 | AI64 | AI64 | ||||||
195 | |||||||||
196 | - | CAB AO1 | - | UINT16 | |||||
197 | - | CAB AO2 | - | ||||||
机器人数据相关(大端显示) | |||||||||
300 | 机器人数据 | 伺服版本号 | INT32 | 04 | 输入寄存器 可读不可写 | ||||
302 | 机器人序列号 | ||||||||
304 | 关节1电压 | Float32 | 各个关节的电压 | V | |||||
306 | 关节2电压 | ||||||||
308 | 关节3电压 | ||||||||
310 | 关节4电压 | ||||||||
312 | 关节5电压 | ||||||||
314 | 关节6电压 | ||||||||
316 | 关节1温度 | Float32 | 各个关节的温度 | °C | |||||
318 | 关节2温度 | ||||||||
320 | 关节3温度 | ||||||||
322 | 关节4温度 | ||||||||
324 | 关节5温度 | ||||||||
326 | 关节6温度 | ||||||||
328 | 关节1伺服错误码 | INT32 | 各关节的伺服错误码 | ||||||
330 | 关节2伺服错误码 | ||||||||
332 | 关节3伺服错误码 | ||||||||
334 | 关节4伺服错误码 | ||||||||
336 | 关节5伺服错误码 | ||||||||
338 | 关节6伺服错误码 | ||||||||
340 | 关节1错误状态 | UINT16 | 当前伺服错误状态 0表示无错误 1代表有错误 | ||||||
341 | 关节2错误状态 | ||||||||
342 | 关节3错误状态 | ||||||||
343 | 关节4错误状态 | ||||||||
344 | 关节5错误状态 | ||||||||
345 | 关节6错误状态 | ||||||||
346 | 关节1使能状态 | UINT16 | 当前伺服使能状态 0表示未使能 1代表使能 | ||||||
347 | 关节2使能状态 | ||||||||
348 | 关节3使能状态 | ||||||||
349 | 关节4使能状态 | ||||||||
350 | 关节5使能状态 | ||||||||
351 | 关节6使能状态 | ||||||||
352 | 关节1碰撞状态 | UINT16 | 当前伺服碰撞检测状态 0表示无碰撞 1代表碰撞 | ||||||
353 | 关节2碰撞状态 | ||||||||
354 | 关节3碰撞状态 | ||||||||
355 | 关节4碰撞状态 | ||||||||
356 | 关节5碰撞状态 | ||||||||
357 | 关节6碰撞状态 | ||||||||
358 | 关节1电流 | Float32 | 各关节的电流 | A | |||||
360 | 关节2电流 | ||||||||
362 | 关节3电流 | ||||||||
364 | 关节4电流 | ||||||||
366 | 关节5电流 | ||||||||
368 | 关节6电流 | ||||||||
370 | 传感器力矩X | Float32 | 力控传感器的力矩 | N | |||||
372 | 传感器力矩Y | ||||||||
374 | 传感器力矩Z | ||||||||
376 | 传感器力矩RX | Nm | |||||||
378 | 传感器力矩RY | ||||||||
380 | 传感器力矩RZ | ||||||||
382 | 关节1位置 | Float32 | 各关节的位置 | ° | |||||
384 | 关节2位置 | ||||||||
386 | 关节3位置 | ||||||||
388 | 关节4位置 | ||||||||
390 | 关节5位置 | ||||||||
392 | 关节6位置 | ||||||||
394 | 关节1速度 | Float32 | 各关节的速度 | °/s | |||||
396 | 关节2速度 | ||||||||
398 | 关节3速度 | ||||||||
400 | 关节4速度 | ||||||||
402 | 关节5速度 | ||||||||
404 | 关节6速度 | ||||||||
406 | TCP位置X | Float32 | TCP | mm | |||||
408 | TCP位置Y | ||||||||
410 | TCP位置Z | ||||||||
412 | TCP位置RX | ° | |||||||
414 | TCP位置RY | ||||||||
416 | TCP位置RZ | ||||||||
418 | TCP速度X | Float32 | TCP速度 | mm/s | |||||
420 | TCP速度Y | ||||||||
422 | TCP速度Z | ||||||||
424 | TCP速度RX | °/s | |||||||
426 | TCP速度RY | ||||||||
428 | TCP速度RZ | ||||||||
430 | TCP_OFFSET_X | Float32 | 工具坐标系 | mm | |||||
432 | TCP_OFFSET_Y | ||||||||
434 | TCP_OFFSET_Z | ||||||||
436 | TCP_OFFSET_RX | Float32 | 工具坐标系 | ° | |||||
438 | TCP_OFFSET_RY | ||||||||
440 | TCP_OFFSET_RZ | ||||||||
442 | BASE_OFFSET_X | Float32 | 用户坐标系 | mm | |||||
444 | BASE_OFFSET_Y | ||||||||
446 | BASE_OFFSET_Z | ||||||||
448 | BASE_OFFSET_RX | ° | |||||||
450 | BASE_OFFSET_RY | ||||||||
452 | BASE_OFFSET_RZ | ||||||||
454 | COLLISION_PROTECTIVE_STOP | UINT16 | 机器人碰撞:1 机器人未碰撞:0 | ||||||
455 | EMERGENCY_STOP | UINT16 | 急停 | ||||||
456 | POWER_ON | UINT16 | 上电 | ||||||
457 | ROBOT_ENABLE | UINT16 | 上使能 | ||||||
458 | ON_SOFT_LIMIT | UINT16 | 软限位 | ||||||
459 | INPOS | UINT16 | 到达目标位置 | ||||||
460 | 运动模式 | UINT16 | 伺服位置模式:4 导纳控制模式:2 拖拽模式:1 其它模式(Jog等操作): 0 | ||||||
461 | 倍率模式等级 | UINT16 | 一级倍率:1 二级倍率:2 保护性停止:3 | ||||||
462 | 速度倍率 | FLOAT32 | 速度倍率 | ||||||
464 | MOTION_ERRCODE | INT32 | 错误码 | ||||||
466 | CAB_TEMPERATURE | FLOAT32 | 控制柜温度 | ||||||
468 | CAB_AVERAGEPOWER | 控制柜功率 | |||||||
470 | CAB_AVERAGECURRENT | 控制柜电流 | |||||||
472 | UHI_PULES | INT32 | 传送带脉冲 | ||||||
474 | UHI_SPEED | 传送带运动速度 | |||||||
476 | UHI_DIR | UINT16 | 传送带运动方向 | ||||||
477 | UHI_ORIGIN_PULES | INT32 | 传送带原始脉冲 | ||||||
479 | ERROR_TRIGGERED | BOOL | 机器人报错:1 机器人未报错:0 | ||||||
480 | TCP线速度 | FLOAT32 | 机器人TCP线速度 | mm/s | |||||
482 | CHECKSUM | UINT16 | 机器人安全参数校验和 | ||||||
484 | TCP角速度 | FLOAT32 | 机器人TCP角速度 | °/s | |||||
486 | REDUCE_MODE | 机器人未处于缩减模式: 0 机器人处于缩减模式:1 | |||||||
487 | Reserved | 保留 | |||||||
… | Reserved | 保留 | |||||||
555 | Reserved | 保留 |
Profinet地址表
说明
符号说明:
- 每个数据模块都有数据传输方向标识,R->P表示机器人向PLC发送数据, P->R表示PLC向机器人发送数据。
- DI表示数字量输入,DO表示数字量输出, AI表示模拟量输入, AO表示模拟量输出。
表格说明:
- 行数字代表BIT位,总共32位, 4个字节,从0到31 Bit, 列数字表示总共使用的BIT位。
- 每一行有数据的类型,所占位数,单位。
- 在单元模块的部分,将相关的数据归纳为一个数据模块, 包含数据模块的名称, 模块代号,字节数。
- 右边第二个表格展示了PLC的设置,包含每个数据模块对应的主槽,子槽编号,起始位置。
Robot2PLC
传输类型 R->P (Robot->PLC) | PLC设置 | ||||
Bit | 数据 | 单元模块 | 插槽 | 子插槽 | I输入地址 |
0 | 机器人序列号 (int32) | 机器人状态、 安全设置 1_R->P_Robot_Safety 36 Bytes | 1 | 1 | 0 |
32 | 伺服版本号 (int32) | 4 | |||
64 | CAB_AVERAGECURRENT (float) [A] | 8 | |||
96 | CAB_AVERAGEPOWER (float) [W] | 12 | |||
128 | CAB_TEMPERATURE (float) [℃] | 16 | |||
160 | POWER_ON | 20.0 | |||
160+1 | ROBOT_ENABLE | 20.1 | |||
160+2 | 预留 | 20.2 | |||
192 | MOTION_ERRCODE (int32) | 24 | |||
224 | 运动模式 (uint8) | 28 | |||
224+8 | 倍率模式等级 (uint8) | 29 | |||
224+16 | EMERGENCY_STOP | 30.0 | |||
224+17 | COLLISION_PROTECTIVE_STOP | 30.1 | |||
224+18 | ON_SOFT_LIMIT | 30.2 | |||
224+19 | REDUCE_MODE | 30.3 | |||
224+20 | 预留 | 30.4 | |||
256 | 机器人安全参数校验和(int32) | 32 | |||
288 | 关节1电压(float)[V] | Joint参数 2_R->P_Joints 172+48 Bytes | 2 | 1 | 36 |
320 | 关节2电压(float)[V] | 40 | |||
352 | 关节3电压(float)[V] | 44 | |||
384 | 关节4电压(float)[V] | 48 | |||
416 | 关节5电压(float)[V] | 52 | |||
448 | 关节6电压(float)[V] | 56 | |||
480 | 关节1电流(float)[A] | 60 | |||
512 | 关节2电流(float)[A] | 64 | |||
544 | 关节3电流(float)[A] | 68 | |||
576 | 关节4电流(float)[A] | 72 | |||
608 | 关节5电流(float)[A] | 76 | |||
640 | 关节6电流(float)[A] | 80 | |||
672 | 关节1位置(float)[°] | 84 | |||
704 | 关节2位置(float)[°] | 88 | |||
736 | 关节3位置(float)[°] | 92 | |||
768 | 关节4位置(float)[°] | 96 | |||
800 | 关节5位置(float)[°] | 100 | |||
832 | 关节6位置(float)[°] | 104 | |||
864 | 关节1速度(float)[°/s] | 108 | |||
896 | 关节2速度(float)[°/s] | 112 | |||
928 | 关节3速度(float)[°/s] | 116 | |||
960 | 关节4速度(float)[°/s] | 120 | |||
992 | 关节5速度(float)[°/s] | 124 | |||
1024 | 关节6速度(float)[°/s] | 128 | |||
1088 | 关节1温度(float)[℃] | 132 | |||
1120 | 关节2温度(float)[℃] | 136 | |||
1152 | 关节3温度(float)[℃] | 140 | |||
1184 | 关节4温度(float)[℃] | 144 | |||
1216 | 关节5温度(float)[℃] | 148 | |||
1248 | 关节6温度(float)[℃] | 152 | |||
1280 | 关节1力矩(float)[Nm] | 156 | |||
1312 | 关节2力矩(float)[Nm] | 160 | |||
1344 | 关节3力矩(float)[Nm] | 164 | |||
1376 | 关节4力矩(float)[Nm] | 168 | |||
1408 | 关节5力矩(float)[Nm] | 172 | |||
1440 | 关节6力矩(float)[Nm] | 176 | |||
1472 | 关节1伺服错误码(int32) | 180 | |||
1504 | 关节2伺服错误码(int32) | 184 | |||
1536 | 关节3伺服错误码(int32) | 188 | |||
1568 | 关节4伺服错误码(int32) | 192 | |||
1600 | 关节5伺服错误码(int32) | 196 | |||
1632 | 关节6伺服错误码(int32) | 200 | |||
1664 | 关节错误状态(0:无错误,1:有错误) (uint8) | 204 | |||
1664+8 | 关节使能状态(0:未使能,1:使能) (uint8) | 205 | |||
1664+16 | 关节碰撞状态(0:未碰撞,1:碰撞) (uint8) | 206 | |||
1664+24 | 预留 | 207 | |||
1696 | 预留 (float) 48 Bytes | 208 | |||
2048 | TCP位置X(float)[mm] | TCP和BASE参数 3_R->P_TCP_BASE 104+40 Bytes | 3 | 1 | 256 |
2080 | TCP位置Y(float)[mm] | 260 | |||
2112 | TCP位置Z(float)[mm] | 264 | |||
2144 | TCP位置RX(float)[°] | 268 | |||
2176 | TCP位置RY(float)[°] | 272 | |||
2208 | TCP位置RZ(float)[°] | 276 | |||
2240 | TCP速度X(float)[mm/s] | 280 | |||
2272 | TCP速度Y(float)[mm/s] | 284 | |||
2304 | TCP速度Z(float)[mm/s] | 288 | |||
2336 | TCP速度RX(float)[°/s] | 292 | |||
2368 | TCP速度RY(float)[°/s] | 296 | |||
2400 | TCP速度RZ(float)[°/s] | 300 | |||
2432 | TCP_OFFSET_X(float)[mm] | 304 | |||
2464 | TCP_OFFSET_Y(float)[mm] | 308 | |||
2496 | TCP_OFFSET_Z(float)[mm] | 312 | |||
2528 | TCP_OFFSET_RX(float)[°] | 316 | |||
2560 | TCP_OFFSET_RY(float)[°] | 320 | |||
2592 | TCP_OFFSET_RZ(float)[°] | 324 | |||
2624 | BASE_OFFSET_X(float)[mm] | 328 | |||
2656 | BASE_OFFSET_Y(float)[mm] | 332 | |||
2688 | BASE_OFFSET_Z(float)[mm] | 336 | |||
2720 | BASE_OFFSET_RX(float)[°] | 340 | |||
2752 | BASE_OFFSET_RY(float)[°] | 344 | |||
2784 | BASE_OFFSET_RZ(float)[°] | 348 | |||
2816 | TCP线速度(float)[mm/s] | 352 | |||
2848 | TCP角速度(float)[°/s] | 356 | |||
2880 | 预留 40 Bytes | 360 | |||
3200 | 布尔寄存器 0-31 | 布尔输出寄存器 DO 0~63 4_R->P_DO 8+4 Bytes | 4 | 1 | 400 |
3232 | 布尔寄存器 32-63 | 404 | |||
3264 | 预留 (4 Bytes) | 408 | |||
3296 | 整数寄存器 0 | 整数输出寄存器 AO 0~31 5_R->P_AO_INT 128 Bytes | 5 | 1 | 412 |
3328 | 整数寄存器 1 | 416 | |||
3360 | 整数寄存器 2 | 420 | |||
3392 | 整数寄存器 3 | 424 | |||
3424 | 整数寄存器 4 | 428 | |||
3456 | 整数寄存器 5 | 432 | |||
3488 | 整数寄存器 6 | 436 | |||
3520 | 整数寄存器 7 | 440 | |||
3552 | 整数寄存器 8 | 444 | |||
3584 | 整数寄存器 9 | 448 | |||
3616 | 整数寄存器 10 | 452 | |||
3648 | 整数寄存器 11 | 456 | |||
3680 | 整数寄存器 12 | 460 | |||
3712 | 整数寄存器 13 | 464 | |||
3744 | 整数寄存器 14 | 468 | |||
3776 | 整数寄存器 15 | 472 | |||
3808 | 整数寄存器 16 | 476 | |||
3840 | 整数寄存器 17 | 480 | |||
3872 | 整数寄存器 18 | 484 | |||
3904 | 整数寄存器 19 | 488 | |||
3936 | 整数寄存器 20 | 492 | |||
3968 | 整数寄存器 21 | 496 | |||
4000 | 整数寄存器 22 | 500 | |||
4032 | 整数寄存器 23 | 504 | |||
4064 | 整数寄存器 24 | 508 | |||
4096 | 整数寄存器 25 | 512 | |||
4128 | 整数寄存器 26 | 516 | |||
4160 | 整数寄存器 27 | 520 | |||
4192 | 整数寄存器 28 | 524 | |||
4224 | 整数寄存器 29 | 528 | |||
4256 | 整数寄存器 30 | 532 | |||
4288 | 整数寄存器 31 | 536 | |||
4320 | 浮点数寄存器 0 | 浮点数输出寄存器 AO 0~31 6_R->P_AO_FLOAT 128 Bytes | 6 | 1 | 540 |
4352 | 浮点数寄存器 1 | 544 | |||
4384 | 浮点数寄存器 2 | 548 | |||
4416 | 浮点数寄存器 3 | 552 | |||
4448 | 浮点数寄存器 4 | 556 | |||
4480 | 浮点数寄存器 5 | 560 | |||
4512 | 浮点数寄存器 6 | 564 | |||
4544 | 浮点数寄存器 7 | 568 | |||
4576 | 浮点数寄存器 8 | 572 | |||
4608 | 浮点数寄存器 9 | 576 | |||
4640 | 浮点数寄存器 10 | 580 | |||
4672 | 浮点数寄存器 11 | 584 | |||
4704 | 浮点数寄存器 12 | 588 | |||
4736 | 浮点数寄存器 13 | 592 | |||
4768 | 浮点数寄存器 14 | 596 | |||
4800 | 浮点数寄存器 15 | 600 | |||
4832 | 浮点数寄存器 16 | 604 | |||
4864 | 浮点数寄存器 17 | 608 | |||
4896 | 浮点数寄存器 18 | 612 | |||
4928 | 浮点数寄存器 19 | 616 | |||
4960 | 浮点数寄存器 20 | 620 | |||
4992 | 浮点数寄存器 21 | 624 | |||
5024 | 浮点数寄存器 22 | 628 | |||
5056 | 浮点数寄存器 23 | 632 | |||
5088 | 浮点数寄存器 24 | 636 | |||
5120 | 浮点数寄存器 25 | 640 | |||
5152 | 浮点数寄存器 26 | 644 | |||
5184 | 浮点数寄存器 27 | 648 | |||
5216 | 浮点数寄存器 28 | 652 | |||
5248 | 浮点数寄存器 29 | 656 | |||
5280 | 浮点数寄存器 30 | 660 | |||
5312 | 浮点数寄存器 31 | 664 |
PLC2Robot
传输类型 P->R(PLC->Robot) | PLC设置 | ||||
Bit | 数据 | 单元模块 | 插槽 | 子插槽 | Q输出地址 |
0 | 布尔寄存器 0-31 | 布尔输入寄存器 DI 0~64 7_P->R_DI 8+4 Bytes | 7 | 1 | 0 |
32 | 布尔寄存器 32-63 | 4 | |||
64 | 预留 (4 Bytes) | 8 | |||
96 | 整数寄存器 0 | 整数输入寄存器 AI 0~31 8_P->R_AI_INT 128 Bytes | 8 | 1 | 12 |
128 | 整数寄存器 1 | 16 | |||
160 | 整数寄存器 2 | 20 | |||
192 | 整数寄存器 3 | 24 | |||
224 | 整数寄存器 4 | 28 | |||
256 | 整数寄存器 5 | 32 | |||
288 | 整数寄存器 6 | 36 | |||
320 | 整数寄存器 7 | 40 | |||
352 | 整数寄存器 8 | 44 | |||
384 | 整数寄存器 9 | 48 | |||
416 | 整数寄存器 10 | 52 | |||
448 | 整数寄存器 11 | 56 | |||
480 | 整数寄存器 12 | 60 | |||
512 | 整数寄存器 13 | 64 | |||
544 | 整数寄存器 14 | 68 | |||
576 | 整数寄存器 15 | 72 | |||
608 | 整数寄存器 16 | 76 | |||
640 | 整数寄存器 17 | 80 | |||
672 | 整数寄存器 18 | 84 | |||
704 | 整数寄存器 19 | 88 | |||
736 | 整数寄存器 20 | 92 | |||
768 | 整数寄存器 21 | 96 | |||
800 | 整数寄存器 22 | 100 | |||
832 | 整数寄存器 23 | 104 | |||
864 | 整数寄存器 24 | 108 | |||
896 | 整数寄存器 25 | 112 | |||
928 | 整数寄存器 26 | 116 | |||
960 | 整数寄存器 27 | 120 | |||
992 | 整数寄存器 28 | 124 | |||
1024 | 整数寄存器 29 | 128 | |||
1056 | 整数寄存器 30 | 132 | |||
1088 | 整数寄存器 31 | 136 | |||
1120 | 浮点数寄存器 0 | 浮点数输入寄存器 AI 0~31 9_P->R_AI_FLOAT 128 Bytes | 9 | 1 | 140 |
1152 | 浮点数寄存器 1 | 144 | |||
1184 | 浮点数寄存器 2 | 148 | |||
1216 | 浮点数寄存器 3 | 152 | |||
1248 | 浮点数寄存器 4 | 156 | |||
1280 | 浮点数寄存器 5 | 160 | |||
1312 | 浮点数寄存器 6 | 164 | |||
1344 | 浮点数寄存器 7 | 168 | |||
1376 | 浮点数寄存器 8 | 172 | |||
1408 | 浮点数寄存器 9 | 176 | |||
1440 | 浮点数寄存器 10 | 180 | |||
1472 | 浮点数寄存器 11 | 184 | |||
1504 | 浮点数寄存器 12 | 188 | |||
1536 | 浮点数寄存器 13 | 192 | |||
1568 | 浮点数寄存器 14 | 196 | |||
1600 | 浮点数寄存器 15 | 200 | |||
1632 | 浮点数寄存器 16 | 204 | |||
1664 | 浮点数寄存器 17 | 208 | |||
1696 | 浮点数寄存器 18 | 212 | |||
1728 | 浮点数寄存器 19 | 216 | |||
1760 | 浮点数寄存器 20 | 220 | |||
1792 | 浮点数寄存器 21 | 224 | |||
1824 | 浮点数寄存器 22 | 228 | |||
1856 | 浮点数寄存器 23 | 232 | |||
1888 | 浮点数寄存器 24 | 236 | |||
1920 | 浮点数寄存器 25 | 240 | |||
1952 | 浮点数寄存器 26 | 244 | |||
1984 | 浮点数寄存器 27 | 248 | |||
2016 | 浮点数寄存器 28 | 252 | |||
2048 | 浮点数寄存器 29 | 256 | |||
2080 | 浮点数寄存器 30 | 260 | |||
2112 | 浮点数寄存器 31 | 264 |
脚本函数
寄存器 | 数据类型 | 脚本函数 | Index (CAB 1.0 ) | Index (CAB 2.1) | Index (Mini CAB) |
DO 0-63 | boolean | get_digital_output(type, index) set_digital_output(type, index, tarState, immed) | 136 - 199 | 144 - 207 | 135 - 198 |
AO 0-31 | int | get_analog_output( type, index) set_analog_output(type, index, tarValue, immed) | 64 - 95 | 66 - 97 | 65 - 96 |
AO 32-63 | float | get_analog_output( type, index) set_analog_output(type, index, tarValue, immed) | 96 - 127 | 98 - 129 | 97 - 128 |
寄存器 | 数据类型 | 脚本函数 | Index (CAB 1.0 ) | Index (CAB 2.1) | Index (Mini CAB) |
DI 0-63 | boolean | get_digital_input( type, index) | 136 - 199 | 144 - 207 | 135 - 198 |
AI 0-31 | int | get_analog_input( type, index) | 72 - 103 | 66 - 97 | 64 - 95 |
AI 32-63 | float | get_analog_input( type, index) | 104 - 135 | 98 - 129 | 96 - 127 |
EtherNet/IP地址表
说明
符号说明:
- 每个数据模块都有数据传输方向标识,R->P表示机器人向PLC发送数据, P->R表示PLC向机器人发送数据。
- DI表示数字量输入,DO表示数字量输出, AI表示模拟量输入, AO表示模拟量输出。
表格说明:
- 行数字代表BIT位,总共32位, 4个字节,从0到31 Bit, 列数字表示总共使用的BIT位。
- 每一行有数据的类型,所占位数,单位。
- 在单元模块的部分,将相关的数据归纳为一个数据模块, 包含数据模块的名称, 模块代号,字节数。
Robot2PLC
传输类型 R->P (Robot->PLC) | PLC设置 总共492字节 | ||
Bit | 数据 | 单元模块 | I输入地址 |
0 | 机器人序列号 (int32) | 机器人状态、 安全设置 1_R->P_Robot_Safety 20 Bytes | 0 |
32 | 伺服版本号 (int32) | 4 | |
64 | POWER_ON | 8.0 | |
64+1 | ROBOT_ENABLE | 8.1 | |
64+2 | 预留 | 8.2 | |
96 | MOTION_ERRCODE (int32) | 12 | |
128 | 运动模式 (uint8) | 16 | |
128+8 | 倍率模式等级 (uint8) | 17 | |
128+16 | EMERGENCY_STOP | 18.0 | |
128+17 | COLLISION_PROTECTIVE_STOP | 18.1 | |
128+18 | ON_SOFT_LIMIT | 18.2 | |
128+19 | REDUCE_MODE | 18.3 | |
128+20 | 预留 | 18.4 | |
160 | 关节1电流(float)[A] | Joint参数 2_R->P_Joints 128 Bytes + 16 Bytes | 20 |
192 | 关节2电流(float)[A] | 24 | |
224 | 关节3电流(float)[A] | 28 | |
256 | 关节4电流(float)[A] | 32 | |
288 | 关节5电流(float)[A] | 36 | |
320 | 关节6电流(float)[A] | 40 | |
352 | 关节1位置(float)[°] | 44 | |
384 | 关节2位置(float)[°] | 48 | |
416 | 关节3位置(float)[°] | 52 | |
448 | 关节4位置(float)[°] | 56 | |
480 | 关节5位置(float)[°] | 60 | |
512 | 关节6位置(float)[°] | 64 | |
544 | 关节1速度(float)[°/s] | 68 | |
576 | 关节2速度(float)[°/s] | 72 | |
608 | 关节3速度(float)[°/s] | 76 | |
640 | 关节4速度(float)[°/s] | 80 | |
672 | 关节5速度(float)[°/s] | 84 | |
704 | 关节6速度(float)[°/s] | 88 | |
736 | 关节1力矩(float)[Nm] | 92 | |
768 | 关节2力矩(float)[Nm] | 96 | |
800 | 关节3力矩(float)[Nm] | 100 | |
832 | 关节4力矩(float)[Nm] | 104 | |
864 | 关节5力矩(float)[Nm] | 108 | |
896 | 关节6力矩(float)[Nm] | 112 | |
928 | 关节1伺服错误码(int32) | 116 | |
960 | 关节2伺服错误码(int32) | 120 | |
992 | 关节3伺服错误码(int32) | 124 | |
1024 | 关节4伺服错误码(int32) | 128 | |
1056 | 关节5伺服错误码(int32) | 132 | |
1088 | 关节6伺服错误码(int32) | 136 | |
1120 | 关节错误状态(0:无错误,1:有错误) (uint8) | 140 | |
1120+8 | 关节使能状态(0:未使能,1:使能) (uint8) | 141 | |
1120+16 | 关节碰撞状态(0:未碰撞,1:碰撞) (uint8) | 142 | |
1120+24 | 预留 | 143 | |
1152 | 机器人安全参数校验和(int32) | 144 | |
1184 | reserved 16 Bytes | 148 | |
1312 | 传感器力矩x(float)[Nm] | TCP参数 3_R->P_TCP 80 Bytes + 44 Bytes | 164 |
1344 | 传感器力矩y(float)[Nm] | 168 | |
1376 | 传感器力矩z(float)[Nm] | 172 | |
1408 | 传感器力矩rx(float)[Nm] | 176 | |
1440 | 传感器力矩ry(float)[Nm] | 180 | |
1472 | 传感器力矩rz(float)[Nm] | 184 | |
1504 | TCP位置X(float)[mm] | 188 | |
1536 | TCP位置Y(float)[mm] | 192 | |
1568 | TCP位置Z(float)[mm] | 196 | |
1600 | TCP位置RX(float)[°] | 200 | |
1632 | TCP位置RY(float)[°] | 204 | |
1664 | TCP位置RZ(float)[°] | 208 | |
1696 | TCP_OFFSET_X(float)[mm] | 212 | |
1728 | TCP_OFFSET_Y(float)[mm] | 216 | |
1760 | TCP_OFFSET_Z(float)[mm] | 220 | |
1792 | TCP_OFFSET_RX(float)[°] | 224 | |
1824 | TCP_OFFSET_RY(float)[°] | 228 | |
1856 | TCP_OFFSET_RZ(float)[°] | 232 | |
1888 | TCP线速度(float)[mm/s] | 236 | |
1920 | TCP角速度(float)[°/s] | 240 | |
1952 | reserved 44 Bytes | 244 | |
2304 | 布尔寄存器 0-31 | 布尔输出寄存器 DO 0~63 4_R->P_DO 8+4 Bytes | 288 |
2336 | 布尔寄存器 32-63 | 292 | |
2368 | 预留 (4 Bytes) | 296 | |
2400 | 整数寄存器 0 | 整数输出寄存器 AO 0~23 5_R->P_AO_INT 96 Bytes | 300 |
2432 | 整数寄存器 1 | 304 | |
2464 | 整数寄存器 2 | 308 | |
2496 | 整数寄存器 3 | 312 | |
2528 | 整数寄存器 4 | 316 | |
2560 | 整数寄存器 5 | 320 | |
2592 | 整数寄存器 6 | 324 | |
2624 | 整数寄存器 7 | 328 | |
2656 | 整数寄存器 8 | 332 | |
2688 | 整数寄存器 9 | 336 | |
2720 | 整数寄存器 10 | 340 | |
2752 | 整数寄存器 11 | 344 | |
2784 | 整数寄存器 12 | 348 | |
2816 | 整数寄存器 13 | 352 | |
2848 | 整数寄存器 14 | 356 | |
2880 | 整数寄存器 15 | 360 | |
2912 | 整数寄存器 16 | 364 | |
2944 | 整数寄存器 17 | 368 | |
2976 | 整数寄存器 18 | 372 | |
3008 | 整数寄存器 19 | 376 | |
3040 | 整数寄存器 20 | 380 | |
3072 | 整数寄存器 21 | 384 | |
3104 | 整数寄存器 22 | 388 | |
3136 | 整数寄存器 23 | 392 | |
3168 | 浮点数寄存器 0 | 浮点数输出寄存器 AO 0~23 6_R->P_AO_FLOAT 96 Bytes | 396 |
3200 | 浮点数寄存器 1 | 400 | |
3232 | 浮点数寄存器 2 | 404 | |
3264 | 浮点数寄存器 3 | 408 | |
3296 | 浮点数寄存器 4 | 412 | |
3328 | 浮点数寄存器 5 | 416 | |
3360 | 浮点数寄存器 6 | 420 | |
3392 | 浮点数寄存器 7 | 424 | |
3424 | 浮点数寄存器 8 | 428 | |
3456 | 浮点数寄存器 9 | 432 | |
3488 | 浮点数寄存器 10 | 436 | |
3520 | 浮点数寄存器 11 | 440 | |
3552 | 浮点数寄存器 12 | 444 | |
3584 | 浮点数寄存器 13 | 448 | |
3616 | 浮点数寄存器 14 | 452 | |
3648 | 浮点数寄存器 15 | 456 | |
3680 | 浮点数寄存器 16 | 460 | |
3712 | 浮点数寄存器 17 | 464 | |
3744 | 浮点数寄存器 18 | 468 | |
3776 | 浮点数寄存器 19 | 472 | |
3808 | 浮点数寄存器 20 | 476 | |
3840 | 浮点数寄存器 21 | 480 | |
3872 | 浮点数寄存器 22 | 484 | |
3904 | 浮点数寄存器 23 | 488 |
PLC2Robot
传输类型 P->R(PLC->Robot) | PLC设置 总共:492字节 | ||
Bit | 数据 | 单元模块(Data Group) | Q输出地址 |
0 | 布尔寄存器 0-31 | 布尔输入寄存器 DI 0~63 7_P->R_DI 8+4 Bytes | 0 |
32 | 布尔寄存器 32-63 | 4 | |
64 | 预留 (4 Bytes) | 8 | |
96 | 整数寄存器 0 | 整数输入寄存器 AI 0~23 8_P->R_AI_INT 96 Bytes | 12 |
128 | 整数寄存器 1 | 16 | |
160 | 整数寄存器 2 | 20 | |
192 | 整数寄存器 3 | 24 | |
224 | 整数寄存器 4 | 28 | |
256 | 整数寄存器 5 | 32 | |
288 | 整数寄存器 6 | 36 | |
320 | 整数寄存器 7 | 40 | |
352 | 整数寄存器 8 | 44 | |
384 | 整数寄存器 9 | 48 | |
416 | 整数寄存器 10 | 52 | |
448 | 整数寄存器 11 | 56 | |
480 | 整数寄存器 12 | 60 | |
512 | 整数寄存器 13 | 64 | |
544 | 整数寄存器 14 | 68 | |
576 | 整数寄存器 15 | 72 | |
608 | 整数寄存器 16 | 76 | |
640 | 整数寄存器 17 | 80 | |
672 | 整数寄存器 18 | 84 | |
704 | 整数寄存器 19 | 88 | |
736 | 整数寄存器 20 | 92 | |
768 | 整数寄存器 21 | 96 | |
800 | 整数寄存器 22 | 100 | |
832 | 整数寄存器 23 | 104 | |
864 | 浮点数寄存器 0 | 浮点数输入寄存器 AI 0~23 9_P->R_AI_FLOAT 96 Bytes | 108 |
896 | 浮点数寄存器 1 | 112 | |
928 | 浮点数寄存器 2 | 116 | |
960 | 浮点数寄存器 3 | 120 | |
992 | 浮点数寄存器 4 | 124 | |
1024 | 浮点数寄存器 5 | 128 | |
1056 | 浮点数寄存器 6 | 132 | |
1088 | 浮点数寄存器 7 | 136 | |
1120 | 浮点数寄存器 8 | 140 | |
1152 | 浮点数寄存器 9 | 144 | |
1184 | 浮点数寄存器 10 | 148 | |
1216 | 浮点数寄存器 11 | 152 | |
1248 | 浮点数寄存器 12 | 156 | |
1280 | 浮点数寄存器 13 | 160 | |
1312 | 浮点数寄存器 14 | 164 | |
1344 | 浮点数寄存器 15 | 168 | |
1376 | 浮点数寄存器 16 | 172 | |
1408 | 浮点数寄存器 17 | 176 | |
1440 | 浮点数寄存器 18 | 180 | |
1472 | 浮点数寄存器 19 | 184 | |
1504 | 浮点数寄存器 20 | 188 | |
1536 | 浮点数寄存器 21 | 192 | |
1568 | 浮点数寄存器 22 | 196 | |
1600 | 浮点数寄存器 23 | 200 | |
1632 | 预留 | 预留 288 Bytes | 204 |
… | … | ||
… | … | ||
3904 | 488 |
脚本函数
寄存器 | 数据类型 | 脚本函数 | Index |
DO 0-63 | boolean | get_digital_output(type, index) set_digital_output(type, index, tarState, immed) | 0-63 |
AO 0-23 | int | get_analog_output( type, index) set_analog_output(type, index, tarValue, immed) | 0-23 |
AO 24-47 | float | get_analog_output( type, index) set_analog_output(type, index, tarValue, immed) | 24-47 |
寄存器 | 数据类型 | 脚本函数 | Index |
DI 0-63 | boolean | get_digital_input( type, index) | 0-63 |
AI 0-23 | int | get_analog_input( type, index) | 0-23 |
AI 24-47 | float | get_analog_input( type, index) | 24-47 |