威纶通官方论坛

MT6070IH与表头通讯问题

[复制链接]
发表于 2012-2-10 15:13:02 | 显示全部楼层 |阅读模式
请教下各位,先需要使用MT6070ih与一个表头通讯,读表头的显示值与设置一些参数,确认连线是正确的,但因为对通讯不熟悉,不知道如何操作,请各位协助下,谢谢!

表头的资料如下: DS8-MODBUS.rar (9.42 KB, 下载次数: 605)

DS MODBUS USER INSTRUCTIONS

MODBUS RTU
1, The instrument  RS485 communication BPS is fixed at 9600 bits/s, start bit=1, data bit=8, stop bit=1, starting and ending time >5ms.RS485通信,波特率9600 BIT/S,停止位、起始位各1位,数据位8位

2, The format of the data reading and writing is same as standard Modbus protocol. Definition as follows:
  Request:(如,发送读PV1测量值命令:01 03 00 62 00 02 65 D5)
01        03        0098(0062H)        0002        26069 (65D5)
ADD        COM        PV1        Counts        CRC
  Response: (仪表返回数据:01 03 04 6D 96 49 F3 71 66)
01        03        04        6D96 49F3        7166
ADD        COM        Counts         PV1        CRC
  返回功率数据为2 WORD ,即PV1= 6D96 49F3 = 6D96.49F3H = 其中整数值为 6D96H+ 小数值 49F3H=28054(=6D96H)+18931(49F3H)  =28054.2888
When Max bit is “1”, means negative, e.g.:返回值最高位为1表示负数,即最高位为符号位,如返回 KW=ED9649F3= ED96.49F3H = -(6D96H+0.49F3H) = --28054.2888
  读出的数中,前一个字为整数,后一个字数为小数,将后一字16位值化为整数再除以65536即为十进制小数值。如上例中49F3H=18931 / 65536=.2888,取四位小数为0.2888
ED96 bit 15=1 is negative, viz. -6D96H
3, When setting parameters, can read multi- parameters; when writing, can write 1 parameter only every time
写数时,要把小数转为16进制HEX格式,如100.5,整数100=0064H,0.5=0.8000H,则写入为100.5=0064 .8000H
4, Commands:可用命令
  02H: read digital value / discrete I/O parameters读开关值
  03H: read holding registers parameters 读参数值
  06H: write single holding register parameter value写单字节
  10H: write multi holding registers parameters value多字节写
5, Communication parameters:

Factory setting
出厂设置         Parameters
参数        Parameter address (HEX)
参数地址        counts numbers (words)
        Function
功能        Remark
备注
        PV1        0098 (62H)        2        1st input measuring value 测量值1        Read only只读
        PV2        0101(65H)        2        2nd input measuring value 测量值2(有两路输入时)        Read only
        PVW        0178(B2H)        2        PV1 X PV2 直流功率值        Read only
90.0        AL1        0000        2        Alarm 1 set value报警1值        R / W
H: high alarm        AM1        0003        1        Alarm 1 mode setting报警方式       
10.0        AL2        0004        2        Alarm 2 set value报警2值        R / W
L: Low alarm        AM2        0007        1        Alarm 2  mode setting报警2方式        R / W
50.0        AL3        0008        2        Alarm 3 set value报警3值        R / W
H: high alarm        AM3        0011        1        Alarm 3  mode setting报警3方式        R / W
0.00        PVF        0012        2        PV1  correction value修正值        R / W
0001        Add        0015        1        Communication address仪表地址        R / W
000        LCK        0016        1        Parameters locking参数锁        R / W
mA        InP        0017        1        Input type 输入信号选择        R / W
0.0        LsP        0020        2        PV1 low limit display setting显示下限        R / W
100.0        UsP        0024        2        PV1 high limit display setting显示上限        R / W
000.0(1 point)        DP1        0027        1        PV1 decimal point setting小数设定        R / W
1.0        HY1        0028        2        Alarm 1 hysteresis value报警1回差        R / W
1.0        HY2        0032        2        Alarm 2 hysteresis value报警2差        R / W
1.0        HY3        0036        2        Alarm 3 hysteresis value报警3差        R / W
0.0        TRL        0040        2        PV1 analog low limit setting电流输出下限值        R / W
100.0        TRH        0044        2        PV1 analog high limit setting电流输出上限值        R / W
1.000        Ct        0144        2        PT setting 量程系数        R / W
其中:AM1 AM2 报警方式0000:L 下限 0001:H上限
     INP: 0000:mA ,0001:V,0002:mV  000 3:rt  0004:  Pt100,  0005:K
           0006: J  0007: E  0008 : T  0009:  B  0010:R  0011 :S
DP1:  0000: 0000. 整数 0001:000.0  一位小数0002: 00.00 二位小数 0003: 0.000三位小数
 楼主| 发表于 2012-2-10 17:30:50 | 显示全部楼层
ModBus RTU 通讯 Test.rar (9.68 KB, 下载次数: 546)
我做了个测试文件,但无法通讯,请各位指点下,谢谢!
发表于 2012-2-10 17:40:33 | 显示全部楼层
是需要读取哪几个数据?PLC类型选择modbus RTU  根据你的通信协议设置好相应的参数,再写入相应的地址。
 楼主| 发表于 2012-2-11 13:41:34 | 显示全部楼层
本帖最后由 tuowai 于 2012-2-11 13:43 编辑

谢谢管理员的回复,请帮我解答下,读取PV1,PV2是需要使用哪个指令读哪个地址呢,比如我读PV1,用的是3x 62H 或3x 63H,(使用3x 62H是因为表头的说明上显示PV1地址为 0098(62H)) 但都是无法通讯的,提示 PLC no response;
PLC类型选择的是modbus RTU,我按照这个表头的通讯协议,设置的参数是9600,N,8,1,人机与表头的地址都已设置为1,请帮忙看下,谢谢!
发表于 2012-2-13 13:47:08 | 显示全部楼层
ModBus RTU 通讯 Test.mtp (223.74 KB, 下载次数: 796)

程序已经修改好,请测试读取是否正确。
 楼主| 发表于 2012-2-13 15:11:00 | 显示全部楼层
谢谢楼主,我先测试下,谢谢!
 楼主| 发表于 2012-2-15 21:01:03 | 显示全部楼层
你好管理员,我测试了下,不再提示 PLC no response ,但上行显示4个****,下行显示0,将格式改为16-bit Signed后,上行可以显示整数,无小数显示,下行显示为0,当删除掉上行后,下行可显示整数,无小数显示,请问下,为什么小数无法显示呢,另外为什么只能显示一个数据呢,谢谢
发表于 2012-2-15 22:12:22 | 显示全部楼层
不提示 PLC no response 说明现在是可以通信,显示小数要选择小数点后面的位数。
或者选择32-float 再选中显示小数点后面的位数。
 楼主| 发表于 2012-2-16 08:37:25 | 显示全部楼层
管理员, 你好!
1 我又试了试,我按照说明书上说的
读出的数中,前一个字为整数,后一个字数为小数,将后一字16位值化为整数再除以65536即为十进制小数值。如上例中49F3H=18931 / 65536=.2888,取四位小数为0.2888
另外再放了一个数字显示 100 ,将格式设置为16 bit HEX,这样的话,可以有数值显示,将此数值转换成10进制再除65536的确是等于当前显示的小数,请问下,这个有什么格式可以直接转换成整数吗;

2 我有放数值显示控件读PV1,PV2,为什么只有PV1可以显示数值呢,(可以确认读PV2控件设置无误,因为将读PV1空间删除后,就可以有显示了)
3 我如果想写相关参数的话,该用哪个指令呢,6X还是4X?
  谢谢!
发表于 2012-2-20 15:25:32 | 显示全部楼层
1、这个需要使用宏指令,数字格式转换只能是偏移或者比例转换。
2、这个是由于你的设备读取只支持读取一个,不支持一个命令读取多个寄存器,在系统参数里面将PLC地址整段间隔改成0(默认为5)。
3、4, Commands:可用命令
   02H: read digital value / discrete I/O parameters读开关值
   03H: read holding registers parameters 读参数值
   06H: write single holding register parameter value写单字节
   10H: write multi holding registers parameters value多字节写

你的资料上支持06H、和10H的功能码,所以6x、4x都可以。
 楼主| 发表于 2012-2-24 19:51:00 | 显示全部楼层
谢谢楼主!
这几天忙别的事情,过几天再重新测试下,谢谢!
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2025-8-13 11:11

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表