一、硬件准备
以下以 CPU1215C DC/DC/DC和CM1241 RS485 模块为例,介绍S7-1200 Modbus RTU 主站通信控制汇川IS620P系列伺服驱动器的组态及编程步骤。
二、伺服驱动器通信参数设置
功能码 | 名称 | 设定值 | 出厂值 | 备注 |
H00-00 | 电机编号 | 14101 | 14000 | |
H03-10 | DI5端子功能选择 | 0 | 1 |
取消输入端子DI5的默认伺服使能功 能,以便使用通信VDI控制伺服使能 |
H05-00 | 主位置指令来源 | 2 | 0 | 修改成多段位置指令 |
H05-02 | 电机每旋转1圈的位置指令数 | 10000 | 0 | |
H0C-00 | 驱动器轴地址 | 9 | 1 | |
H0C-02 | 串口波特率设置 | 2 | 5 | |
H0C-09 | 通信VDI | 1 | 0 | |
H0C-26 | MODBUS通信数据高低位顺序 | 0 | 1 | |
H11-04 | 位移指令类型选择 | 1 | 0 | 绝对位移指令 |
H17-00 | VDI1端子功能选择 | 1 | 0 | 伺服使能 |
H17-02 | VDI2端子功能选择 | 28 | 0 | 多段位置指令使能 |
参数修改完成后,需要重现上电,修改H02-01为1,重启伺服驱动器,否则驱动器上电后需要进行原点复归确认机械原点,断电后无位置记忆。若报警731,则将H0D-20设置为1,然后重新上电重启,若报警ER994,则表示通讯地址冲突。
三、S7-1200PLC的程序编写
1、plc硬件组态和相关指令的详细介绍请参考(西门子官方技术文档)
在西门子1200plc中Modbus RTU通信指令有两个版本,在这里使用的是旧版本指令
![西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯 西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯](/a/picture/32/01.png)
通信参数的设置只需主站和从站一致即可,如果觉得在伺服驱动器处修改比较麻烦,也可以从plc的组态中进行修改,为了参考官方技术文档资料,本例从伺服驱动器修改通信参数
2、完成硬件组态之后,按如下方式添加通信数据块
![西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯 西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯](/a/picture/32/02.png)
3、右键数据块图标→点击“属性”→“属性”→去掉“优化的块访问”的“√”
![西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯 西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯](/a/picture/32/03.png)
![西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯 西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯](/a/picture/32/04.png)
4、双击打开刚添加的伺服控制数据块,在数据块中添加如下变量并编译
![西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯 西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯](/a/picture/32/05.png)
5、添加“MB_COMM_LOAD”指令组态端口使用 Modbus RTU 协议来通信
![西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯 西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯](/a/picture/32/06.png)
注意:要组态 Modbus RTU 的端口,必须调用“MB_COMM_LOAD”一次。完成组态后,“MB_MASTER”和“MB_SLAVE”指令可以使用该端口。如果要修改其中一个通信参数,则只需再次调用“MB_COMM_LOAD”。每次“MB_COMM_LOAD”调用将删除通信缓冲区中的内容。为避免通信期间数据丢失,应避免不必要地调用该指令。
6、添加如下指令,当按下i0.0时,读取当前位置并将数值存入DB块中的编码器反馈值,功能码首地址H0B-58(指令首地址计算:16进制0B00改为10进制2816,再加58,再加上400001)
![西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯 西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯](/a/picture/32/07.png)
7、添加如下指令,按下i0.1,将DB块中的位置、速度、加减速时间写入伺服驱动器,功能码首地址H11-12(指令首地址计算:16进制1100改为10进制4352,加上12,再加上400001)
![西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯 西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯](/a/picture/32/08.png)
其中,给定位置(第一段位移) 的数据范围若超出 -65536~+65535,则属于 32 位功能码,占用两个连续的功能码组内偏置号,占用 2个连续的地址,分别为 H11-12 和 H11-13,但通信地址仅由偏置号较低的地址决定。写入功能码时,需要根据 H0C-26 的设置,确定在通信帧中高16位和低16位的先后顺序。H0C-26=0时高 16 位在前,低 16 位在后;H0C-26=1时低 16 位在前,高 16 位在后。默认情况下H0C-26=1,偏置号较低的地址 (H11-12) 存储功能码值的低 16 位,偏置号较高的地址 (H11-13)存储功能码值的高 16 位,与西门子plc的存储方式相反。速度和加减速时间功能码的数据范围在 -65536~+65535 之内,为 16 位功能码,只占用 1 个功能码组内偏置,只占用 1 个地址,分别为H11-14和H11-15。
8、添加如下指令,按下i0.2将DB块中的控制字写入伺服驱动器,功能码H31-00(指令首地址计算:16进制3100改为10进制12544,再加上400001)
![西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯 西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯](/a/picture/32/09.png)
![西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯 西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯](/a/picture/32/10.png)
四、plc指令中通信存储器地址的计算方法
1、伺服参数地址为什么要进行进制转换:
伺服驱动器功能码显示形式:HXX-YY
其中:
XX:功能码组号,为十六进制数据;
YY:功能码组内偏置,为十进制数据
以功能参数H0B-58为例,功能参数中0B00为功能组参数,为16进制形式,进行通信时需要转换成十进制数字,而后面的58为偏移地址,本身就是十进制形式,通信时不需要转换。
2、plc地址为什么要加40001
PLC地址一般采用10进制描述,共有5位,其中第一位代表寄存器类型,后面的代表偏移地址。Modbus Master 协议库把标准的Modbus 地址映射为所谓Modbus 功能号,读写从站的数据。Modbus Master 协议库支持如下地址:
•00001 - 09999:数字量输出(线圈)
•10001 - 19999:数字量输入(触点)
•30001 - 39999:输入数据寄存器(通常为模拟量输入)
•40001 - 49999:数据保持寄存器
支持 Modbus 协议的设备或软件,使用时用户直接设置或看到的应当是 Modbus 数据地址。如果 Modbus 通信的一方提供的所谓 Modbus 协议只有功能码,则需要注意了解此功能号与 Modbus 地址间的对应关系。
五、伺服驱动器相关功能码介绍
1、H00-00电机编号
14000:汇川20位增量编码器电机
14101:汇川23位绝对值编码器电机
电机编号设置错误,将发生ER120(产品匹配故障)
2、H02-31 系统参数初始化,用于使参数恢复出厂值或清除故障记录。
设定值 | 操作含义 | |
0 | 无操作 | |
1 | 恢复出厂设定值 |
除 H00、H01 组参数,其他组参数恢复至驱 动器出厂值 |
2 | 清除故障记录 | 最近 10 次故障和警告代码被清除。 |
3、H03-10 DI5端子功能选择
DI/DO基本功能定义
设定值 | DI 端子功能 | 设定值 | DI 端子功能 |
0 | 不分配 DI 功能 | 19 | JOGCMD-( 反向点动 ) |
1 | S-ON ( 伺服使能 ) | 20 | PosStep( 步进量使能 ) |
2 | ALM-RST( 故障与警告复位 ) | 21 | HX1( 手轮倍率信号 1) |
3 | GAIN-SEL( 增益切换 ) | 22 | HX2( 手轮倍率信号 2) |
4 | CMD-SEL( 主辅运行指令切换 ) | 23 | HX_EN( 手轮使能信号 ) |
5 | DIR-SEL( 多段运行指令方向选择 ) | 24 | GEAR_SEL( 电子齿轮选择 ) |
6 | CMD1( 多段运行指令切换 1) | 25 | ToqDirSel ( 转矩指令方向设定 ) |
7 | CMD2( 多段运行指令切换 2) | 26 | SpdDirSel ( 速度指令方向设定 ) |
8 | CMD3( 多段运行指令切换 3) | 27 | PosDirSel ( 位置指令方向设定 ) |
9 | CMD4( 多段运行指令切换 4) | 28 | PosInSen ( 多段位置指令使能 ) |
10 | M1-SEL( 模式切换 1) | 29 | XintFree ( 中断定长状态解除 ) |
11 | M2-SEL( 模式切换 2) | 30 | 无 |
12 | ZCLAMP( 零位固定使能 ) | 31 | HomeSwitch ( 原点开关 ) |
13 | INHIBIT( 位置指令禁止 ) | 32 | HomingStart ( 原点复归使能 ) |
14 | P-OT( 正向超程开关 ) | 33 | XintInhibit ( 中断定长禁止 ) |
15 | N-OT( 反向超程开关 ) | 34 | EmergencyStop ( 紧急停机 ) |
16 | P-CL( 正外部转矩限制 ) | 35 | ClrPosErr( 清除位置偏差 ) |
17 | N-CL( 负外部转矩限制 ) | 36 | V_LmtSel ( 内部速度限制源 ) |
18 | JOGCMD+( 正向点动 ) | 37 | PulseInhibit( 脉冲指令禁止 ) |
注意:
①、H03-10 请勿设定为上表以外的值。
②、相同 DI 功能不可重复分配。否则,将发生 Er.130(DI 功能重复分配 )。
③、请勿分配了某一 DI 功能,并将该 DI 逻辑置为有效后,再取消该 DI 功能分配,否则该 DI 功能将保持有效!
4、H04-00 DO1端子功能选择
DO基本功能定义
设定值 | DO 功能名称 |
0 | 不分配 DO 功能 |
1 | S-RDY:伺服准备好 |
2 | TGON:电机旋转 |
3 | ZERO:零速信号 |
4 | V-CMP:速度一致 |
5 | COIN:定位完成 |
6 | NEAR:定位接近 |
7 | C-LT:转矩限制 |
8 | V-LT:速度受限 |
9 | BK:抱闸 |
10 | WARN:警告 |
11 | ALM:故障 |
12 | ALMO1:输出 3 位报警代码 |
13 | ALMO2:输出 3 位报警代码 |
14 | ALMO3:输出 3 位报警代码 |
15 | Xintcoin:中断定长完成 |
16 | HomeAttain:原点回零完成 |
17 | ElecHomeAttain:电气回零完成 |
18 | ToqReach:转矩到达 |
19 | V-Arr:速度到达 |
注意:
①、H04-00 的参数值请勿设定为上表以外的值。
②、相同 DO 功能可分配到不同的 DO 端子,包括硬件 DO 与 VDO 端子。
5、H05-00 位置指令来源
位置控制模式时,用于选择位置指令来源。
设定值 | 指令来源 | 指令获取方式 |
0 | 脉冲指令 | 上位机或者其他脉冲发生装置产生位置脉冲指令,通过硬件端子输入至伺服驱动器。硬件端子通过 H05-01 选择。 |
1 | 步进量 | 由参数 H05-05 设置步进量位移。由 DI 功能 FunIN.20 触发步进量指令。 |
2 | 多段位置指令 | 由 H11 组参数设定多段位置功能的运行方式。由 DI 功能 FunIN.28 触发多段位置指令。 |
6、H05-02 电机每旋转一圈的位置指令数
7、H05-30 原点复归使能控制,设置原点复归模式及触发信号来源。
设定值 | 触发信号 | 备注 | |
原点复归模式 | 触发信号 | ||
0 | 关闭原点复归 | 禁止原点复归功能 | |
1 | 通过DI 输入 HomingStart 信号,使能原点复归功能 | 原点回零 | DI 信号 FunIN.32(HomingStart:原点复归使能 ) |
2 | 通过DI 输入 HomingStart 信号,使能电气回零功能 | 电气回零 | DI 信号 FunIN.32(HomingStart:原点复归使能 ) |
3 | 上电后立即启动原点复归 | 原点回零 | 位置模式下,重新上电,第 1 次伺服使能信号 |
4 | 立即进行原点复归 | 原点回零 |
位置模式下,伺服使能信号 回零成功后,H05-30=0 |
5 | 启动电气回零命令 | 电气回零 |
位置模式下,伺服使能信号 回零成功后,H05-30=0 |
6 | 以当前位置为原点 | 原点回零 |
不需要 回零成功后,H05-30=0 |
8、H11-12 多段位置第 1 段移动位移。
9、H11-14 多段位置第 1 段最大运行速度。
最大运行速度是指电机不处于加减速过程的匀速运行速度,若 H11-12( 第 1 段移动位移 ) 过小,电机实际转速将小于 H11-14。
10、H11-15 第一段位移加减速时间
多段位置第 1 段电机由 0rpm 匀变速到 1000rpm 的时间。
11、H0C-00 驱动器轴地址
0:广播地址,上位机可通过广播地址对所有驱动器进行写操作,驱动器收到广播地址的帧进行相应操作,但不做回应。
1~247:当多台伺服驱动器进行组网时,每个驱动器只能有唯一的地址,否则会导致通信异常或无法通信。
12、H0C-09 通信VDI,设置是否使用虚拟数字信号输入端子 (Virtual Digital Input,简称 VDI)。
VDI 类似硬件 DI 端子,可分配 DI 功能。当使能 VDI 时,相当于扩展 DI 的个数,VDI 个数为 16 个。VDI 与 H03 组 DI 端子分配同一非零 DI 功能,驱动器将发生 Er.130 !
首次上电,VDI 端子逻辑由 H0C-10( 上电后 VDI 默认虚拟电平值 ) 决定。之后,VDI 端子逻辑由 H31-00(VDI 虚拟电平 ) 决定。
H0C-10 在面板上显示为十进制,H31-00 面板不可见,转化成二进制后,H0C-10(H31-00) 的 bit(n)=1 表示VDI(n+1) 端子逻辑为“1”,bit(n)=0 表示 VDI(n+1) 端子逻辑为“0”。
13、H0C-11 通信VDO,设置是否使用虚拟数字信号输出端子 (Visual Digital Output,简称 VDO)。
VDO 类似硬件 DO 端子,可分配 DO 功能。当使能 VDO 时,相当于扩展 DO 的个数,VDO 个数为 16 个。
H0C-12 和 H17-32 在面板上显示为十六进制,转化成二进制后,H0C-12(H17-32) 的 bit(n)=1 表示 VDO(n+1) 端子逻辑为“1”,bit(n)=0 表示 VDO(n+1) 端子逻辑为“0”。建议各 VDO 端子逻辑电平设置与 H0C-12 设置成相反的逻辑。
14、H11-04 位移指令类型选择
0:相对位移指令
1:绝对位移指令
15、H17-00 VDI1 端子功能选择,设置 VDI1( 虚拟输入端子 1) 对应的 DI 功能。
16、H17-02 VDI2 端子功能选择,设置 VDI2( 虚拟输入端子 2) 对应的 DI 功能。
17、H02-01 绝对值系统选择(选择驱动器绝对位置功能)。
设定值 | 绝对值系统选择 | 备注 |
0 | 增量位置模式 |
驱动器后需要进行原点复归确认机械原点,断电后无位 置记忆功能。 |
1 | 绝对位置线性模式 |
适用于绝对值编码器电机(电机编号 H0000=14101), 驱动器断电时编码器通过电池备份数据,上电后驱动器 通过编码器绝对位置计算机械绝对位置。 |
2 | 绝对位置旋转模式 |
18、H02-02 旋转方向选择
19、H0B-58 机械绝对位置(低 32 位)
显示使用绝对值功能时,机械对应的位置反馈低 32 位数值 ( 编码器单位 )。
20、H0B-60 机械绝对位置(高 32 位)
显示使用绝对值功能时,机械对应的位置反馈高 32 位数值 ( 编码器单位 )。
21、H0D-20 绝对编码器复位使能
通过设置 H0D-20 复位编码器内部故障或复位编码器反馈多圈数据。
◆注:执行复位编码器反馈多圈数据操作后,编码器绝对位置发生突变,需要进行机械原点复归操作。
设定值 | 功能 |
0 | 无操作 |
1 | 复位故障 |
2 | 复位故障和多圈数据 |
22、H31-00 通信给定 VDI 虚拟电平
使用 VDI 功能时,设定 VDI1~VDI16 对应的 DI 功能电平。
H31-00 为十进制数,在面板上不可见,只能通过通信方式给定。
23、H0C-02串口波特率设置(设置驱动器与上位机通信速率),出厂设定值5
设定值 | 波特率设置 |
0 | 2400 Kbp/s |
1 | 4800 Kbp/s |
2 | 9600 Kbp/s |
3 | 19200 Kbp/s |
4 | 38400 Kbp/s |
5 | 57600 Kbp/s |
伺服驱动器的通信速率必须和上位机通信速率一致,否则无法通信。
24、H0C-25 MODBUS 指令应答延时,设定范围0-5000,出厂设定值1。
25、H0C-26 MODBUS 通信数据高低位顺序,设置使用 MODBUS 通信时,针对 32 位数据的传送格式。出厂设定值1。
设定值 | 32 位数据高低位顺序 |
0 | 高 16 位在前,低 16 位在后 |
1 | 低 16 位在前,高 16 位在后 |
上一篇:没有了
下一篇:没有了