1.2. Hi5机器人控制器的Modbus功能
1.2. Hi5机器人控制器的Modbus功能
Hi5机器人控制器专门支持Modbus的从属功能。
(1) Modbus发送模式
n ASCII模式
n 远程测试装置(以下称“RTU”)(二进制)模式
(2) 支持功能
n 01: 读入Coil(Bit)
n 02: 读入离散输入(Bit)
n 03: 读入存储寄存器(复式)
n 04: 读入输入寄存器(复式)
n 05: 写入单一Coil(Bit)
n 06: 写入单一存储寄存器
n 15: 写入Coil(复式Bit)
n 16: 写入存储寄存器(复式)
(3) 设置从属地址
n 从属地址: 1~247
n 命令从属地址为0时、与设置地址无关、提供激活所有从动装置的同步通信功能。
(4) 通信媒体
n CNSIO: RS232/RS422/RS485选择性使用 → 1:1(RS232/RS422)、1:N(RS485)
① RS232C Pin排列: No.2(TxD)、3(RxD)、5(GND) → 与PC使用直接电缆。
② RS422/RS485 Pin排列: 1(Tx)、6(/Tx)、4(Rx)、9(/Rx)
n OPSIO: RS232/RS422/RS485选择性使用 → 1:1(RS232/RS422)、1:N(RS485)
RS232C Pin排列pin array: No.3(TxD)、2(RxD)、5(GND) → 与PC使用交叉电缆。
RS422/RS485 Pin排列: 1(Tx)、6(/Tx)、4(Rx)、9(/Rx)
(5) 使用条件
n 内置PCL正在运行时、可把内置PLC继电器用为Modbus功能。(注意: Hi5 PCL使用环境设置可在TP进行。)
n PCL演算模式的环境设置如下图所示、在TP按照『[F7]: 条件设置』 → 『[F1]: 应用(App).条件』顺序进行。
n 如内置PLC停止动作、则不支持内置PCL继电器写入功能、但仍能运行从所有寄存器或Coil读入的功能。
(6) Modbus虚拟管理例示
n 运转功能:
低费用图示板机器人或支持直列Modbus的机器人可与RS232/RS422/RS485连接使用。
n PLC通信:
可以用低廉的解决方案提供与装置有Modbus主功能的PLC之间进行通信的功能。
n PC机器人管理系统:
可构建使用PC直列端口监控或管理机器人输出入信号的机器人管理系统。
(7) Hi5继电器映射(Mapping)
Modbus数据型号 |
| 继电器映射: 参照Hi5继电器环境设置及输出入数据流 | 功能 | |
| 1bit | |||
继电器名 | 寄存器 | 逻辑计算 | ||
输入离散 计算: 0x0000~0xffff 数量: 1~2039(bit)
输入寄存器 计算: 0x0000~0xffff 数量: 1~127 | 外部输入 | X1~8192 | 0x0001~0x2000 | 读入功能 02: 读入离散输入(Bit) 04: 读入输入寄存器(复式) |
PLC输入 | DO1~4096 | 0x2001~0x3000 | ||
现场总线输入 1号 | FB1.X1~960 | 0x3001~0x33C0 | ||
~~现场总线输入~~~~ 2~~~~号~~ | ~~FB2.X1~960~~ | ~~0x3401~0x37C0~~ | ||
现场总线输入 3号 | FB3.X1~960 | 0x3801~0x3BC0 | ||
~~现场总线输入~~~~ 4~~~~号~~ | ~~FB4.X1~960~~ | 0x3C01~0x3FC0 | ||
CC-Link 输入 | FB5.X1~256 | 0x4001~0x4100 | ||
现场总线节点输入 | FN1~64.X1~128 | 0x5001~0x8F80 | ||
计时器 | T1~256 | 0xF001~0xF100 | ||
计数器 | C1~256 | 0xF201~0xF300 | ||
模拟输出 |
|
| 1000 倍率数据(例: 6250→6.250) | |
Coils 计算: 0x0000~0xffff 数量: 1~2039(bit)
存储寄存器 计算: 0x0000~0xffff 数量: 1~127 | 外部输出 | Y1~8192 | 0x0001~0x2000 | 读入功能 01: 读入Coil(Bit) 03: 读入存储寄存器 (复式)
写入功能 05: 写入单一Coil(Bit) 15: 写入Coil(复式 Bit) 06: 写入单一存储寄存器
AO: 1000倍率数据(范围: ±12.000) 预配系统内存 |
PLC 输出 | DI1~4096 | 0x2001~0x3000 | ||
现场总线输出 1号 | FB1.Y1~960 | 0x3001~0x33C0 | ||
~~现场总线输出~~~~ 2~~~~号~~ | ~~FB2.Y1~960~~ | ~~0x3401~0x37C0~~ | ||
现场总线输出 3号 | FB3.Y1~960 | 0x3801~0x3BC0 | ||
~~现场总线~~~~ ~~~~输出~~~~ 4~~~~号~~ | ~~FB4.Y1~960~~ | ~~0x3C01~0x3FC0~~ | ||
CC-Link 输出 | FB5.Y1~256 | 0x4001~0x4100 | ||
现场总线节点输出 | FN1~64.Y1~128 | 0x5001~0x8F80 | ||
特殊(Special) | SP1~128 | 0x9101~0x9180 | ||
辅助(Auxiliary) | R1~1024 | 0x9201~0x9600 | ||
保留(Keep) | K1~1024 | 0x9801~0x9C00 | ||
计时器 |
|
| ||
计数器 |
|
| ||
模拟输出 |
|
| ||
系统内存 | SW1~512.1~16 | 0xA001~0xC000 | ||
共享寄存器 | 数据内存 | MW1~1000.1~16 | 0xC001~0xFE80 | |
HRBASIC | V% 变数 |
|
| |
RN寄存器 |
|
| 数据范围: 0~255 | |
V$ 变数 |
|
| 36 字节/V$ → 40 x 36/2 = 720 | |
| V! 变数 |
|
| IEEE单精度32Bit 浮动小数点 |
Modbus数据型号 |
| 继电器映射(Mapping): 参照Hi5继电器环境设置及输出入数据流 | 功能 | ||||
| 寄存器接头部位名称 |
| |||||
继电器名称 | 8Bit | 16Bit | 32bit | 浮动型 (Float)(32bit) | 逻辑计算 | ||
输入离散 计算: 0x0000~0xffff 数量: 1~2039(bit)
输入寄存器 计算: 0x0000~0xffff 数量: 1~127 | 外部输入 | XB1~1024 | XW1~512 | XL1~256 | XF1~256 | 0x0001~0x0200 | 读入功能 02: 读入离散输入 (bit) 04: 读入输入寄存器(复式) |
PLC输入 | DOB1~512 | DOW1~256 | DOL1~128 | DOF1~128 | 0x2001~0x2100 | ||
现场总线输入1号 | FB1.XB1~120 | FB1.XW1~60 | FB1、XL1~30 | FB1.XF1~30 | 0x3001~0x303C | ||
~~现场总线输入~~~~2~~~~号~~ | ~~FB2.XB1~120~~ | ~~FB2.XW1~60~~ | ~~FB2~~~~、~~~~XL1~30~~ | ~~FB2.XF1~30~~ | ~~0x3401~0x343C~~ | ||
现场总线输入3号 | FB3.XB1~120 | FB3.XW1~60 | FB3、XL1~30 | FB3.XF1~30 | 0x3801~0x383C | ||
~~现场总线输入~~~~4~~~~号~~ | ~~FB4.XB1~120~~ | ~~FB4.XW1~60~~ | ~~FB4~~~~、~~~~XL1~30~~ | ~~FB4.XF1~30~~ | ~~0x3C01~0x3C3C~~ | ||
CC-Link 输入 | FB5.XB1~32 | FB5.XW1~16 | FB5、XL1~8 | FB5.XF1~8 | 0x4001~0x4010 | ||
现场总线 节点输出 | FN1~64.XB1~16 | FN1~64.XW1~8 | FN1~64.XL1~4 | FN1~64.XF1~4 | 0x5001~0x8F08 | ||
计时器 |
|
|
|
|
| ||
计数器 |
|
|
|
|
| ||
模拟输出 |
| AI1~32 |
|
| 0x9A01~0x9A20 | 1000倍率数据 (例: 6250→6.250) | |
Coil 计算: 0x0000~0xffff 数量: 1~2039(bit)
存储寄存器 计算: 0x0000~0xffff 数量: 1~127 | 外部输出 | YB1~1024 | YW1~512 | YL1~256 | YF1~256 | 0x0001~0x0200 | 读入功能 01: 读入Coil (bit) 03: 读入存储寄存器 (复式)
写入功能 05: 写入单一Coil (bit) 15: 写入Coil(复式bit) 06: 写入单一存储寄存器 16: 写入存储寄存器 (复式)
AO: 1000倍率数据(范围: ±12.000) 预配系统内存 |
PLC输出 | DIB1~512 | DIW1~256 | DIL1~128 | DIF1~128 | 0x2001~0x2100 | ||
现场总线 输出1号 | FB1.YB1~120 | FB1.YW1~60 | FB1、YL1~30 | FB1.YF1~30 | 0x3001~0x303C | ||
~~现场总线~~~~ ~~~~ ~~~~输出~~~~2~~~~号~~ | ~~FB2.YB1~120~~ | ~~FB2.YW1~60~~ | ~~FB2~~~~、~~~~YL1~30~~ | ~~FB2.YF1~30~~ | ~~0x3401~0x343C~~ | ||
现场总线 输出3号 | FB3.YB1~120 | FB3.YW1~60 | FB3、YL1~30 | FB3.YF1~30 | 0x3801~0x383C | ||
~~现场总线~~~~ ~~~~ ~~~~输出~~~~4~~~~号~~ | ~~FB4.YB1~120~~ | ~~FB4.YW1~60~~ | ~~FB4~~~~、~~~~YL1~30~~ | ~~FB4.YF1~30~~ | ~~0x3C01~0x3C3C~~ | ||
CC-Link 输出 | FB5.YB1~32 | FB5.YW1~16 | FB5、YL1~8 | FB5.YF1~8 | 0x4001~0x4010 | ||
现场总线 节点输出 | FN1~64.YB1~16 | FN1~64.YW1~8 | FN1~64.YL1~4 | FN1~64.YF1~4 | 0x5001~0x8F08 | ||
特殊(Special) | SPB1~16 | SPW1~8 | SPL1~4 | SPF1~4 | 0x9001~0x9008 | ||
辅助(Auxiliary) | RB1~128 | RW1~64 | RL1~32 | RF1~32 | 0x9101~0x9140 | ||
保留(Keep) | KB1~128 | KW1~64 | KL1~32 | KF1~32 | 0x9201~0x9240 | ||
计时器 | TB1~1024 | TW1~512 | TL1~256 | TF1~256 | 0x9301~0x9500 | ||
计数器 | CB1~1024 | CW1~512 | CL1~256 | CF1~256 | 0x9701~0x9900 | ||
模拟输出 |
| AO1~32 |
|
| 0x9A01~0x9A20 | ||
系统内存 | SB1~1024 | SW1~512 | SL1~256 | SF1~256 | 0xA001~0xA200 | ||
共享寄存器 | 数据内存 | MB1~2000 | MW1~1000 | ML1~500 | MF1~500 | 0xA401~0xA7E8 | |
HRBASIC | V% 变数 |
| V%[1~400] |
|
| 0xB001~0xB190 | |
RN寄存器 |
| RN1~16 |
|
| 0xC001~0xC010 | 数据范围 : 0~255 | |
V$ 变数 | V$[1~40] | 0xD001~0xD2D0 | 36 字节/V$ → 40 x 36/2 = 720 | ||||
| V! 变数 |
|
|
| V![1~400] | 0xE001~0xE320 | IEEE 单精度32bit 浮动小数点 |
n 上表的斜体大号数字表示Modbus使用的继电器组。
n 数据类型: 浮动(Float)型除了IEEE单精度32bit 浮动小数点、8/16/32bit除了RN寄存器之外、使用所有带符号整数型。8bit型根据图示板仅能使用读入功能。
① 继电器字节存储次序使用小字节序。
例如、浮动型YF1=6.515625(0x40D08000)时、YL1=0x40D08000 → YW1=0x8000、 YW2=0x40D0 → YB1=0x00、YB2=0x80、YB3=0xD0、YB4=0x40
注意) Modbus传送是16bit排列的大字节序。也就是说、上述发送动作以0x80、0x00、 0x40、0xD0顺序发生。
n Hi4对比变化
追加31bit长精度(Long)型和浮动型、AI和AO数以4→32扩展、扩展SP、SPB、SPW、SPL和SPF的数(SPW: 2→8)、此外、也扩展了SB、SW、SL和SF的数(SW: 256→512)。但MB、MW、ML和MF的大小则变小了。
计时器(Tn)和计数器(Cn)的bit数以16bit→32bit扩展。
参照) Tn(Cn)和TLn(CLn)的关系
如果TLn(CLn)的值为0时、Tn(Cn)值为1(激活)、
如果TLn(CLn)的值不是0时、Tn(Cn)的值就会是0。
DI/DO和X/Y继电器扩展: DI/DO1~256 → 1~4096、X/Y1~256 → 1~8192
数量扩展: Bit=2000→2039、Reg=125 → 127
n 现场总线节点输出人地址: 上级字节会配置节点号(1~64: 0x50~0x8F、Offset: 0x50)、下级字节会配置地址(bit: 1~128、单词: 1~8)。
例如、
FN1.X1~128: 0x5001~0x5080、FN2.X1~128: 0x5101~0x5180、FN3.X1~128: 0x5201~0x5280、FN4.X1~128: 0x5301~0x5380、FN64.X1~128: 0x8F01~0x8F80
FN1.X1~128: 0x5001~0x5080、FN2.X1~128: 0x5101~0x5180、FN3.X1~128: 0x5201~0x5280、FN4.X1~128: 0x5301~0x5380、FN64.X1~128: 0x8F01~0x8F80
FN1.XW1~8: 0x5001~0x5008、FN2.XW1~8: 0x5101~0x5108、FN3.XW1~8: 0x5201~0x5208、FN4.XW1~8: 0x5301~0x5308、FN64.XW1~8: 0x8F01~0x8F08
(8) Hi5控制器继电器结构
(9) Hi5控制器输出入数据流
应用层从HRBasic读取数字输入(DI)值或在数字0(D0)记录值。设备层读取D0输出值。DI/D0的装置驱动层从PLC、输出入监控或Modbus读取值或进行记录。因此根据属性(逻辑、脉冲和延迟)两者之间会存在少许差异。