ModbusTCP转Profinet主站网关控制汇川MS1H1-10B30CB电机

电子说

1.2w人已加入

描述

介绍一款神器,YC-PNM-TCP,它能在ModbusTCP和Profinet网关之间做桥梁。

YC-PNM-TCP是ModbusTCP和Profinet网关,使用数据映射方式工作。在ModbusTCP侧作为ModbusTCP从站,接PLC、上位机、wincc屏等;在Profinet侧做为Profinet主站控制器,接Profinet设备,如伺服驱动器。使用场景:ModbusTCPClient通过ModbusTCP控制Profinet接口设备,Profinet接口设备接入DCS/工控机等。ModbusTCP侧支持03H、04H、10H、01H、02H、0FH功能码,最多支持20个client连接;Profinet侧支持PROFINETV2.4。Profinet最多支持128个从站。

ModbusTCP

数据映射说明

ModbusTCP和Profinet是通过数据映射的方式交换数据的。用户需要按照数据映射说明操。

PN地址与博图组态时的I&Q地址一一对应。PN中未被使用的地址无法进

行操作,实际使用时必须严格按照组态时的地址进行操作。

ModbusTCP

使用01H、02H、0FH功能码数据映射说明

ModbusTCP

上图为PN地址与ModbusTcp线圈或者离散量地址的映射关系,线圈或者离散量地址以bit为单位。

使用01H、02H、0FH功能码读写数据时,地址和数据长度必须是8的整数倍。如不是8的整数倍会被强制整除8后再按照相应的地址和数据长度进行读写。读写的地址也必须合法,在博图中组态时被设备使用,否则会读写错误。

如需从PN的I(输入)地址2读取3个字节数据。则可以使用02H功能码,设置起始地址为2*8=16,数据长度为3*8=24,进行读取得到PN地址2、3、4的数据。

如需从PN的Q(O输出)地址6写入5个字节的数据,则可以使用0FH功

能码,设置起始地址为6*8=48,数据长度5*8=40,进行数据写入。若此时地址6到地址11中有地址未被使用,会导致写入失败。

如需从PN的Q(O输出)地址读取数据可以使用01H功能码,操作同02H功能码。需要注意的是PN的Q(O输出)地址无法读取,此时读取的数据是读取的网关设备缓存的数据可能会读取到错误数据,不建议使用此功能。

使用03H、04H、10H功能码数据映射说明

使用03H、04H、10H功能码读写数据时,读写地址直接对应的是PN的实际地址。由于03H、04H、10H功能码是对寄存器(2个字节)操作,只能操作PN的偶数个字节,不能进行单字节操作。如从地址0读1个寄存器,读取到的是PN地址0和地址1的数据,如从地址1读1个寄存器,读取到的是PN地址

1和地址2的数据。

ModbusTCP

如上图,从PN的I(输入)地址2读取3个寄存器。则可以使用04H功能码,设置起始地址为2,数据长度为3,进行读取得到PN地址2到7的数据。此时若起始地址为3,则是直接从PN的地址3开始读取。

ModbusTCP

如上图,从PN的Q(O输出)地址6写入4个寄存器,则可以使用10H功能码,设置起始地址为6,数据长度4,数据会被写入到PN的地址6到13。若从地址6到地址13中间有地址未被占用,会导致写入失败。

如需从PN的Q(O输出)地址读取数据可以使用03H功能码,操作同04H功能码。需要注意的是PN的Q(O输出)地址无法读取,此时读取到的数据是网关设备缓存的数据,可能会读取到错误数据。不建议使用此功能。

注:10H、0FH都是对PN的Q(O输出)地址操作,会缓存到相同的地址内,使用01H、03H读取的数据相同。

应用实例

使用ModbusPoll通过网关控制汇川IS620FS1R6I伺服驱动器带动汇川

MS1H1-10B30CB电机进行简单运行。

先按照3.2使用博图配置实例,组态配置IS620F,并将组态文件导入到网关。

连接好IS620F和网关并上电。

ModbusTCP

从博图组态中可以看到IS620F占用PN的I地址0—17,Q地址0—9。

ModbusTCP

IS620F与网关正常通信后会显示44ry,表示网络已联通、应用模式AC4、准备就绪(具体含义详见IS620F用户手册)。

使用ModbusPoll测试

1、电脑要确保和网关IP在同一网段,网关及电脑IP使用DHCP的方式(可

按照IP设置改为静态IP)。

2、打开ModbusPoll,使用ModbusTCP连接网关502端口。

ModbusTCP

3、设置04功能码从寄存器0开始读9个寄存器,对应PN的I地址0—17。

此时可以读取到IS620F的状态,具体含义参考IS620F用户手册。

3、设置16功能码从寄存器0开始写5个寄存器,对应PN的Q地址0—9。

ModbusTCP

此时给寄存器0写入0x047E(STW1控制字)、寄存器1写入0x2000(NSOLL_B转速设定值B)。

ModbusTCP

寄存器0从0x047E修改为0x047F。此时IS620F控制伺服电机按照设定转速开始旋转,LED显示由44ry改为44rn。

此时能看到04H功能码读到的寄存器0(ZSW1状态字)由0x6200变为0x6700。

这款产品可以应用在很多领域,比如能源、制造业等,快来试试这款神器吧!欢迎点赞收藏

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分