一、硬件准备 以下以 CPU1215C DC/DC/DC和CM1241 RS485 模块为例,介绍S7-1200 Modbus RTU 主站通信控制汇川IS620P系列伺服驱动器的组态及编程步骤。 二、伺服驱动器通信参数设置
参数修改完成后,需要重现上电,修改H02-01为1,重启伺服驱动器,否则驱动器上电后需要进行原点复归确认机械原点,断电后无位置记忆。若报警731,则将H0D-20设置为1,然后重新上电重启,若报警ER994,则表示通讯地址冲突。 三、S7-1200PLC的程序编写 1、plc硬件组态和相关指令的详细介绍请参考(西门子官方技术文档) 在西门子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 系统参数初始化,用于使参数恢复出厂值或清除故障记录。
3、H03-10 DI5端子功能选择 DI/DO基本功能定义
注意: ①、H03-10 请勿设定为上表以外的值。 ②、相同 DI 功能不可重复分配。否则,将发生 Er.130(DI 功能重复分配 )。 ③、请勿分配了某一 DI 功能,并将该 DI 逻辑置为有效后,再取消该 DI 功能分配,否则该 DI 功能将保持有效! 4、H04-00 DO1端子功能选择 DO基本功能定义
注意: ①、H04-00 的参数值请勿设定为上表以外的值。 ②、相同 DO 功能可分配到不同的 DO 端子,包括硬件 DO 与 VDO 端子。 5、H05-00 位置指令来源 位置控制模式时,用于选择位置指令来源。
6、H05-02 电机每旋转一圈的位置指令数 7、H05-30 原点复归使能控制,设置原点复归模式及触发信号来源。
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 绝对值系统选择(选择驱动器绝对位置功能)。
18、H02-02 旋转方向选择 19、H0B-58 机械绝对位置(低 32 位) 显示使用绝对值功能时,机械对应的位置反馈低 32 位数值 ( 编码器单位 )。 20、H0B-60 机械绝对位置(高 32 位) 显示使用绝对值功能时,机械对应的位置反馈高 32 位数值 ( 编码器单位 )。 21、H0D-20 绝对编码器复位使能 通过设置 H0D-20 复位编码器内部故障或复位编码器反馈多圈数据。 ◆注:执行复位编码器反馈多圈数据操作后,编码器绝对位置发生突变,需要进行机械原点复归操作。
22、H31-00 通信给定 VDI 虚拟电平 使用 VDI 功能时,设定 VDI1~VDI16 对应的 DI 功能电平。 H31-00 为十进制数,在面板上不可见,只能通过通信方式给定。 23、H0C-02串口波特率设置(设置驱动器与上位机通信速率),出厂设定值5
伺服驱动器的通信速率必须和上位机通信速率一致,否则无法通信。 24、H0C-25 MODBUS 指令应答延时,设定范围0-5000,出厂设定值1。 25、H0C-26 MODBUS 通信数据高低位顺序,设置使用 MODBUS 通信时,针对 32 位数据的传送格式。出厂设定值1。
|
|
来自: 微信用户18w7s3 > 《待分类》