工控编程吧
标题:
威纶通寄存器格式如何表达如表达LW100的第10位
[打印本页]
作者:
13571474420
时间:
2020-10-25 16:02
标题:
威纶通寄存器格式如何表达如表达LW100的第10位
我刚接触威纶通的触摸屏,使用了一个short类型的寄存器,想要表示寄存器的二进制位不知道如何表示。
比如一个屏的寄存器LW100,它是一个short长度类型的整数,共有16个二进制位可以使用,
如何在元件属性里设置使用指定的位呢?
如下图,
(, 下载次数: 0)
上传
点击文件名下载附件
在站长的指导下,知道可以用小数点表示每个二进制位了。
但在宏代码里面还有问题。
比如要表示第2个站的LW100的第15位,怎么都编译不过。
作者:
海欣
时间:
2020-10-25 16:05
很简单啊,在设置元件属性的读取地址时,
随意输入十六进制外的字符,点击确认,会弹出地址格式提示对话框的。
威纶很土鳖的,每个不同硬件,格式都不一样,乱七八糟的。
给你截图一张参考。
(, 下载次数: 0)
上传
点击文件名下载附件
作者:
qq263946146
时间:
2020-10-25 16:58
有实例能更加深入理解。
,使用最新版本6.04.2编程软件。
界面如下:
(, 下载次数: 3)
上传
点击文件名下载附件
第一行的指示灯第一个灯地址设置为:LW10000,表示LW100通道第00二进制位。
用鼠标右键,多重复制了16个,可以查看每个灯的地址变化。
第二行的指示灯第一灯地址设置为:LW200.0,表示LW200通道的第00二进制位;
同样用鼠标右键,多重复制了16个,可以查看每个灯的地址变化。
可以发现一个通道的二进制位可以用小数点表示,也可以用后两位表示。
当然不同硬件会有些不同,如楼上所说,比如西门子的M,8进制的,只用一位表示。
最简单的查看方法,和楼上所说,在地址框内随意输入非法字符,会弹出提示框;
另外宏代码内要表示一个通道的二进制,好像只能用小数点型号。
当众多相同型号硬件选定一个来读取通道数值时,比如MODBUS通讯时会常出现这种情况。
,如1#123,表示站号1的某寄存器123。
同样此格式可以用于元件属性设置时,如下
(, 下载次数: 0)
上传
点击文件名下载附件
也可用于宏代码编程中,如下
macro_command main()
unsigned short nValue=0,nValue1=0
GetData(nValue, "Local HMI", LW, 100, 1)
GetData(nValue1, "Local HMI", LW, 200, 1)
nValue= nValue*2//表示1向高位移动一位;
nValue1= nValue1*2
if nValue==0 then //保证值不为0才有意义;
nValue=1
nValue1=1
end if
SetData(nValue, "Local HMI", LW, 100.0, 1)//这里用小数点表示LW100的0到15的二进制位;
SetData(nValue1, "Local HMI", LW, 200, 1)
SetData(nValue, "MODBUS RTU (HEX Addressing)", 3x, 10#0, 1)//10#表示站号10,不带时表示<系统参数设置的预设站号>
TRACE("%d",nValue)
end macro_command
复制代码
这里出现的预设站号,是说在我们添加一个硬件后,此硬件有预留设置的一个站号。
可以在新版本编程软件,菜单,常用,系统参数,弹出设置对话框。
双击指定的PLC硬件查看与设置。
例程大伙可以下载查看,
例程实现跑马灯效果。通过宏代码完成功能。
(, 下载次数: 0)
上传
点击文件名下载附件
作者:
海欣
时间:
2020-12-18 17:46
qq263946146 发表于 2020-10-25 16:58
有实例能更加深入理解。
,使用最新版本6.04.2编程软件。
界面如下:
其实只要细心,在当前界面某处都会有提示IO格式的。
有的用两位表示通道小数点,有的是一位。
有的是用十进入表示小数点如欧姆龙,有的是用十六进制如西门子。
宏编程时,在窗口底部应该可以看到。
界面使用控件时,控件地址设置窗口找找也会有。
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4