威纶通官方论坛

TK8071IP MODBUS通讯问题

[复制链接]
发表于 2019-2-22 15:14:16 | 显示全部楼层 |阅读模式
求大神帮助:

无论是采用内置的modbus协议,还是自己用宏定义的传输均有问题

内置:7F 7E DF FF FD F5 18  (应该为01 03 00 10 00 01 **)

我用宏指令简单测试了一下:给0x01 输出0x7F ,给了个0x56 输出0x2A,但是这个值输出到HMI的寄存器(我给到LW00100)值是对的

macro_command main()
char command[32], response[32]
short address, checksum
short read_no, return_value, read_data[2]
FILL(command[0], 0, 32) // 命令初始化
FILL(response[0], 0, 32)

Command[0] = 0x56

Command[1] = 0x3 // 功能码:读取保持寄存器
address = 0
HIBYTE(address, command[2])
LOBYTE(address, command[3])
read_no = 2 // read 2 words (4x_1 and 4x_2)
HIBYTE(read_no, command[4])
LOBYTE(read_no, command[5])
CRC(command[0], checksum, 6)
LOBYTE(checksum, command[6])
HIBYTE(checksum, command[7])
// 使用 OUTPORT 函数将命令送出去
OUTPORT(command[0], "Modbus RTU", 1)

read_data[0] = command[0]
SetData(read_data[0], "Local HMI", LW, 100, 1)


end macro_command

内置的modbus协议

内置的modbus协议
发表于 2019-3-20 15:48:26 | 显示全部楼层
Command[0] = 0x56 //0x01
站号不对,设置里面站号为1,应该为0x01,你写的是0x56
OUTPORT(command[0], "Modbus RTU", 1)
发送语句也不对,一是没有对应的地址,二是发送的数量也不对。建议把手册的内置函数多看几遍
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

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

GMT+8, 2024-4-20 14:41

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

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