皇楚帝123
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點(diǎn)
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看皇楚帝123的 主題 / 回貼
樓主  發(fā)表于: 2016-12-13 21:53
這是找到的宏指令模板
// Read Holding Registers
macro_command main()
char command[32], response[32]
short address, checksum
short read_no, return_value, read_data[2], i
FILL(command[0], 0, 32)// initialize command[0]~command[31] to 0
FILL(response[0], 0, 32)
command[0] = 0x1// station number
command[1] = 0x3// read holding registers (function code is 0x3)
address = 0// starting address (4x_1) is 0
HIBYTE(address, command[2])
LOBYTE(address, command[3])
read_no = 2// the total words of reading is 2 words
HIBYTE(read_no, command[4])
LOBYTE(read_no, command[5])
CRC(command[0], checksum, 6)// calculate 16-bit CRC
LOBYTE(checksum, command[6])
HIBYTE(checksum, command[7])
OUTPORT(command[0], "MODBUS RTU Device",8)// send request
INPORT(response[0], "MODBUS RTU Device",9,return_value)// read response
if (return_value > 0 and response[1] == 0x4) then
read_data[0] = response[4] + (response[3] << 8)// 4x_1
read_data[1] = response[6] + (response[5] << 8)// 4x_2
SetData(read_data[0], "Local HMI", LW, 0, 2)
end if
end macro_command

通過485連電腦,用串口助手讀到的數(shù)據(jù)卻是
7F DF EB FF FB 5D 6D 00  

不知道是什么原因?
剛接觸這個東西,望大神指教!
tyw123456
級別: 家園常客

精華主題: 1 篇
發(fā)帖數(shù)量: 113 個
工控威望: 797 點(diǎn)
下載積分: 313 分
在線時間: 256(小時)
注冊時間: 2016-09-13
最后登錄: 2022-07-13
查看tyw123456的 主題 / 回貼
1樓  發(fā)表于: 2016-12-14 08:25
你485的A B線是不是反了
本帖最近評分記錄:
  • 下載積分:+1(snails) 一語道破天機(jī),厲害!
  • 靜水深流
    皇楚帝123
    級別: *
    精華主題: * 篇
    發(fā)帖數(shù)量: * 個
    工控威望: * 點(diǎn)
    下載積分: * 分
    在線時間: (小時)
    注冊時間: *
    最后登錄: *
    查看皇楚帝123的 主題 / 回貼
    2樓  發(fā)表于: 2016-12-14 08:51
    是的,這個觸摸屏的485,1接的B,2接的A。。。。
    非常感謝!
    平凡人生
    天道酬勤
    級別: 略有小成
    精華主題: 0
    發(fā)帖數(shù)量: 226 個
    工控威望: 333 點(diǎn)
    下載積分: 1611 分
    在線時間: 177(小時)
    注冊時間: 2010-12-31
    最后登錄: 2024-09-20
    查看平凡人生的 主題 / 回貼
    3樓  發(fā)表于: 2016-12-19 21:31
    呵呵,