arr访问绝对地址_西门子1200PLC与汇川伺服电机的MODBUS-RTU通讯

一、硬件准备

以下以 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硬件组态和相关指令的详细介绍请参考以下链接(西门子官方技术文档)

http://www.ad.siemens.com.cn/productportal/Prods/S7-1200_PLC_EASY_PLUS/SmartSMS/016.html

在西门子1200plc中Modbus RTU通信指令有两个版本,在这里使用的是旧版本指令

通信参数的设置只需主站和从站一致即可,如果觉得在伺服驱动器处修改比较麻烦,也可以从plc的组态中进行修改,为了参考官方技术文档资料,本例从伺服驱动器修改通信参数

2、完成硬件组态之后,按如下方式添加通信数据块

3、右键数据块图标→点击“属性”→“属性”→去掉“优化的块访问”的“√”

4、双击打开刚添加的伺服控制数据块,在数据块中添加如下变量并编译

5、添加“MB_COMM_LOAD”指令组态端口使用 Modbus RTU 协议来通信

注意:要组态 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)

7、添加如下指令,按下i0.1,将DB块中的位置、速度、加减速时间写入伺服驱动器,功能码首地址H11-12(指令首地址计算:16进制1100改为10进制4352,加上12,再加上400001)

其中,给定位置(第一段位移) 的数据范围若超出 -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)

四、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 位在后

上一篇:没有了

下一篇:没有了


版权声明:本文为weixin_42126668原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。