关于威纶的触摸屏读仪表的数据 点击:1507 | 回复:2



wwpglgl

    
  • 精华:0帖
  • 求助:3帖
  • 帖子:3帖 | 6回
  • 年度积分:0
  • 历史总积分:29
  • 注册:2011年7月22日
发表于:2012-07-19 15:33:32
楼主
求助帖5分-已结帖
我已经知道仪表的通讯规约,怎样用触摸屏去读它的内容?
正在下载,请等待……
下载附件需0积分!




青岛黄工

  • [版主]
  • 精华:3帖
  • 求助:54帖
  • 帖子:108帖 | 4776回
  • 年度积分:0
  • 历史总积分:24297
  • 注册:2007年4月02日
发表于:2012-07-19 20:32:16
1楼
都支持MODBUS的话,我想直接将表中需要读取数据的地址放在屏上就可以,没有做过。楼主实验一下,给个结果啊。

yinyupeng256

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 17回
  • 年度积分:0
  • 历史总积分:182
  • 注册:2011年3月16日
发表于:2012-07-20 16:13:32
2楼

用宏去执行读取。
macro_commandmain()

charcommand【32】,response【32】

shortaddress,checksum

shortread_no,return_value,read_data【2】,write_value【2】

 

FILL(command【0】,0,32)     清零

FILL(response【0】,0,32)      清零

 

GetData(write_value【0】,"LocalHMI",LW,30,2)    把在触摸屏上输入的值转到触摸屏自定义的数组里

 

command【0】=0x1      设置从站地址,和Trioaddress对应

command【1】=0x10      设置功能码

 

address=0           为对应写入的地址,为0时,第一个写入的位置为VR0

HIBYTE(address,command【2】)          address的高位写入command数组

LOBYTE(address,command【3】)              address的低位写入command数组

 

read_no=2                            写入的数有几个,这里为2,表示写入LW3031

HIBYTE(read_no,command【4】)

LOBYTE(read_no,command【5】)

 

command【6】 =read_no * 2                          应该是等待的意思

 

HIBYTE(write_value【0】,command【7】)

LOBYTE(write_value【0】,command【8】)

 

HIBYTE(write_value【1】,command【9】)

LOBYTE(write_value【1】,command【10】)

 

CRC(command【0】,checksum,11)                  CRC效验

 

LOBYTE(checksum,command【11】)

HIBYTE(checksum,command【12】)

 

OUTPORT(command【0】,"modbusrtu",13)      输出到对应的设备上去

 

 

 

 

 

end macro_command


热门招聘
相关主题

官方公众号

智造工程师