威纶通TK6071iQ触摸屏通过宏指令与modbus温湿度传感器通信,16进制转换10进制。

我查了百度上面的资料,很少有关于这一方面的知识,都是靠自己不断搜索,然后尝试出来,也非常感谢网上的前辈们把一点点的疑问解答了。我这里总结一下。

1,首先是触摸屏连接仪表,线都是485两条线接。。

2,触摸屏选择COM2(RS485 2W),(com1是RS232)参数如下,注意:通信延时一定要有,30ms,50ms都可以的,没有延时可能收不到数据。亲测!

 

 

3,然后威纶通宏指令是没有将16进制转化成10进制的。所有这里宏指令要自己写代码,将16进制转化为 10进制。这样显示在触摸屏上的数字才是10进制。以下是我参考网上的代码写的子程序:

sub short bcdd(short b)    //宏指令子程序头
short i,t
short sum=0
char s[3]        //定义一个数组用来存放16进制数值转化的ascill码,这里的16进制数值因为温湿度                              // 传感器已经固定是3个数值(比如11A),所以数组长度固定为3

                         //如果不知道16进制长度,要先测出16进制数值长度
short a1,a2,a3

HEX2ASCII(b, s[0], 3)             //先将16进制数b转换成ASCLL码存放到数组s[3]中

for i=0 to 2       //for循环3次,计算出10进制数值

if s[i]>=48 and s[i]<=57 then
t=s[i]-48
 else if s[i]>=65 and s[i]<=70 then
t=s[i]-55
end if
sum=sum*16+t
next
return sum       //返回的sum值就是转化10进制的数值
end sub               //宏指令子程序尾

 还有一个,如果想直接在触摸屏上面显示从温湿度传感器读取的数值,可以新增数值元件,设置好读取参数即可。学习调试的时候可以对比。

以上。谢谢观看

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值