昆仑通态-莫迪康ModbusRTU讲解

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

硬件配置参数设置设备命令故障分析#莫迪康ModbusRTU1、设备简介本驱动构件用于MCGS软件通过ModbusRTU协议读写ModiconPLC设备的各种寄存器的数据;同时也可用于对支持ModbusRTU标准协议的各类PLC、仪表、控制器数据的读写。本驱动支持01、02、03、04、05、06、15、16常用功能码,对功能码支持请参见附录1。驱动类型串口子设备,须挂接在“通用串口父设备”下才能工作通讯协议采用莫迪康ModbusRTU协议通讯方式一主一从、一主多从方式。驱动构件为主,设备为从。2、硬件连接MCGS软件与设备通讯之前,必须保证通讯连接正确。通讯连接方式:TPC与设备之间采用标准的RS485或RS232通讯。ModiconTSX系列和Twido系列PLC的编程通讯口(TerminalPort)的通讯电缆图如下:其他设备的通讯连接,具体请参考对应设备手册。3、设备通讯参数“通用串口父设备”通讯参数设置如下:设置项参数项返回顶部通讯波特率9600(默认值)、19200、38400数据位位数7、8(默认值)停止位位数1(默认值)、2奇偶校验位奇校验、偶校验(默认值)、无校验其中父设备通讯参数设置应与设备的通讯参数相同,否则无法正常通讯。设备通讯参数的具体设置请参见对应设备手册。4、设备构件参数设置“莫迪康ModbusRTU”子设备参数设置如下:内部属性:单击“查看设备内部属性”,点击按钮进入内部属性,具体设置请参看内部属性。最小采集周期:MCGS对设备进行操作的时间周期,单位为ms,默认为100ms,根据采集数据量的大小,设置值可适当调整。设备地址:必须和实际设备的地址相一致,范围为0-255,默认值为0。通讯等待时间:通讯数据接收等待时间,默认设置为200ms,根据采集数据量的大小,设置值可适当调整。快速采集次数:对选择了快速采集的通道进行快采的频率(已不使用,为与老驱动兼容,故保留,无需设置)。16位整数解码顺序:调整字元件的解码顺序,对于ModiconPLC及标准PLC设备,使用默认值即可。16位整数解码顺序举例:0x00010―12表示字元件高低字节不颠倒(默认值)表示11―21表示字元件高低字节颠倒表示25632位整数解码顺序:调整双字元件的解码顺序,对于ModiconPLC,请设置为“2-3412”顺序解码。32位整数解码顺序举例:0x000000010―1234表示双字元件不做处理直接解码(默认值)表示11―2143表示双字元件高低字不颠倒,但字内高低字节颠倒表示2562—3412表示双字元件高低字颠倒,但字内高低字节不颠倒表示655363—4321表示双字元件内4个字节全部颠倒表示1677721632位浮点数解码顺序:调整双字元件的解码顺序,对于ModiconPLC,请设置为“2-3412”顺序解码。32位浮点数解码顺序举例:0x3F8000000―1234表示双字元件不做处理直接解码(默认值)表示1.01―2143表示双字元件高低字不颠倒,但字内高低字节颠倒表示-5.78564e-0392—3412表示双字元件高低字颠倒,但字内高低字节不颠倒表示2.27795e-0413—4321表示双字元件内4个字节全部颠倒表示4.60060e-041校验方式:选择LRC校验值的组合方式,对于ModiconPLC及标准PLC设备,使用默认设置即可。0—LH[低字节,高字节]:校验结果为2个字节,低字节在前,高字节在后。1—HL[高字节,低字节]:校验结果为2个字节,高字节在前,低字节在后。分块采集方式:驱动采集数据分块的方式,对于ModiconPLC及标准PLC设备,使用默认设置可以提高采集效率。0—按最大长度分块:采集分块按最大块长处理,对地址不连续但地址相近的多个分块,分为一块一次性读取,以优化采集效率。1—按连续地址分块:采集分块按地址连续性处理,对地址不连续的多个分块,每次只采集连续地址,不做优化处理。例如:有4区寄存器地址分别为1~5,7,9~12的数据需采集,如果选择“0-按最大长度分块”,则两块可优化为地址1~12的数据打包1次完成采集;如果选择“1-按连续地址分块”,则需要采集3次。4区16位写功能码选择:写4区单字时功能码的选择,这个属性主要是针对自己制作设备的用户而设置的,这样的设备4区单字写可能只支持0x10功能码,而不支持0x06功能码。0—0x06:单字写功能码使用0x06。1—0x10:单字写功能码使用0x10。注意:1.“解码顺序”及“校验方式”设置:主要是针对非标准ModbusRTU协议的不同解码及校验顺序。当用户通过本驱动软件与设备通讯时,如果出现解析数据值不对,或者通讯校验错误(通讯状态为3),可与厂家咨询后对以上两项进行设置。而对于ModiconPLC及支持标准ModbusRTU的PLC及控制器等设备,一般需将“32位整数解码顺序”和“32位浮点数解码顺序”设置为“2-3412”。另外,在使用本驱动与“Modbus串口数据转发设备”构件通讯时,“解码顺序”及“校验方式”均需按默认值设置,否则会导致通讯失败或解析数据错误。2.“分块采集方式”设置:主要是针对非标准ModbusRTU协议设备。当用户通过本驱动软件与设备通讯时,如果按默认“0-按最大长度分块”时,出现读取连续地址正常,而不连续地址不正常时,可与厂家咨询,并设置为“1-按连续地址分块方式”尝试是否可正常通讯。而对于ModiconPLC及支持标准ModbusRTU的PLC及控制器等设备,直接使用默认设置即可,这样可以提高采集效率。5、采集通道a、通讯状态:通讯状态值代表意义0表示当前通讯正常1表示采集初始化错误2表示采集无数据返回错误3表示采集数据校验错误4表示设备命令读写操作失败错误5表示设备命令格式或参数错误6表示设备命令数据变量取值或赋值错误6、内部属性用户可通过内部属性,添加通道,本驱动构件可支持ModbusRTU寄存器类型及对应功能码如下:寄存器数据类型读取功能码写入功能码操作方式通道举例[1区]输入继电器BT02—只读只读10001表示1区地址1[0区]输出继电器BT0105、15读写读写00001表示0区地址1[3区]输入寄存器BT、WUB、WB、WDDUB、DB、DD、DF、STR04—只读只读30001表示3区地址1[4区]输出寄存器BT、WUB、WB、WDDUB、DB、DD、DF、STR0306、16读写读写40001表示4区地址1说明:功能码:[1区]、[3区]不支持写操作;[4区]在双字(32位)数据写操作或批量写入多个数据时,使用16功能码。数据类型:“STR”数据类型是专用于和MCGS“Modbus串口数据转发设备”驱动构件配合使用的,并且只能通过写通道的方式来改变“Modbus串口数据转发设备”从设备的值。具体数据类型说明请参见附录2注意:在内部属性中添加通道时,起始地址均为1,这是遵从Modbus协议的,即所谓的“协议地址”,对于部分寄存器起始地址为0的设备,通道添加时,地址应加1处理。7、设备命令本设备构件提供设备命令,具体格式如下:设备命令命令格式命令举例读取命令ReadRead(寄存器名称,寄存器地址,数据类型=返回值)例1.1:!SetDevice(设备0,6,Read(0,1,BT00=Data00;1,10,BT00=Data01))读取0区地址为1,1区地址10的继电器值,放入MCGS变量Data00,Data01中。例1.2:!SetDevice(设备0,6,Read(4,10,WUB=Data00;4,40,DF=Data01))读取寄存器4区地址1的16位无符号值,和地址40的浮点数值,放入MCGS变量Data00,Data01中。写入命令WriteWrite(寄存器名称,寄存器地址,数据类型=写入值)例1.3:!SetDevice(设备0,6,Write(4,10,WUB=Data00;4,40,DF=Data01))将Data00,Data01的值分别以16位无符号和浮点数写入4区寄存器地址10和40中。32位读命令Read32Read32(寄存器名称,寄存器地址,数据类型=字符返回值)例2.1:!SetDevice(设备0,6,Read32(4,10,DUB=strData))读取4区寄存器中地址10的32位无符号值,放入字符变量strData中。32位写命令Write32Write32(寄存器名称,寄存器地址,数据类型=字符写入值)例2.2:!SetDevice(设备0,6,Write32(DM,10,DUB=strData))将字符变量strData的值,以32位无符号格式写入4区寄存器地址1中。批量读取A:ReadPReadP(寄存器名称,起始地址,数据类型,数据个数n,数据1,…..数据例3.1:!SetDevice(设备0,6,ReadP(4,10,WUB,2,Data00,Data01,nReturn))表示读取4区寄存器从地址10开始的两个16位无符号数值,放入n[,返回状态])MCGS变量Data00,Data01中,执行结果存入变量nReturn中。批量读取B:ReadPVReadPV(寄存器名称,起始地址,数据类型,数据个数n,数据1[,返回状态])例3.2:!SetDevice(设备0,6,ReadPV(4,10,WUB,5,Data00,返回值))表示读取4区寄存器从地址10开始的5个16位无符号数值,放入MCGS变量Data00为起始,连续5个变量(即:Data00,Data01,Data02,Data03,Data04)中,结果存入变量“返回值”中。批量读取C:ReadBlockReadBlock(寄存器名称,起始地址,[数据类型1][数据类型…],读取数量n,字符数据[,返回状态])说明:读取数量是指读取N个数据类型中指定的数据段到字符变量中,数据类型可以有多个,之间用中括号分隔。实际连续读取个数=读取数量n*(数据类型1+数据类型n)返回数据“字符数据”格式为:123,456,xxx的csv方式,每次读取时以回车换行结尾。例3.3:!SetDevice(设备0,6,ReadBlock(4,10,[WUB][DF],3,strData))表示读取4区寄存器从地址10开始,按WBU,DF格式连续读取3组数据(即:数据格式为WUB,DF,WUB,DF,WUB,DF),并以相应格式解析并以逗号间隔的CSV格式存入字符变量StrData中。批量读取D:ReadMutiRegReadMutiReg(寄存器名称,起始地址,数据个数n,数据类型,字符数据)说明:按指定数据类型批量读取起始地址开始连续地址的n个数据到字符变量数据中,数据间以逗号间隔。例3.4:!SetDevice(设备0,6,ReadMutiReg(4,10,5,DF,strData))表示读取4区寄存器从地址10开始的5个32位浮点数值,并以逗号间隔形式,放入MCGS字符串变量strData中。例如:字符变量strData=“123.4,234.5,345.6,456.7,567.8”。批量写入A:WritePWriteP(寄存器名称,起始地址,数据类型,数据个数n,数据1,…..数据n[,返回状态])例4.1:!SetDevice(设备0,6,WriteP(4,10,WUB,2,Data00,Data01,nReturn))表示将MCGS变量Data00,Data01的值,以16位无符号形式写入4区寄存器从地址10起始的两个寄存器中,执行结果存入变量nReturn中。批量写入B:WritePVWriteP(寄存器名称,起始地址,数据类型,数据个数n,数据1[,返回状态])例4.2:!SetDevice(设备0,6,WritePV(4,10,WUB,5,Data00,nReturn))表示将以MCGS变量Data01为起始,连续5个变量的值(即:Data00,Data01,Data02,Data03,Data04),以16位无符号形式写入4区寄

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功