扫一扫,访问微社区

QQ登录

只需一步,快速开始

威纶通触摸屏如何根据不同情况显示不同提示文本

[ 复制链接 ]
根据LW9222的第0位 1位 2位 。。。6位的值来判断LW500 中的字符串显示
比如
如果LW_BIT 922200=1,则LW500字符串显示“aaa”或者“文字1”
如果LW_BIT 922201=1,则LW500字符串显示“bbb”或者“文字2”
不知道字符串怎么赋值啊 请指教啊。
如果有示例程序 麻烦发一个给我研究下 多谢。
回答:
类似的提问我有回答过。
这里再以两种形式来回答,一种是通过多状态指示类元件实现,
一种是通过宏指令来实现。
通过多状态指示灯来实现的话,很简单很多。
我们知道多状态指示灯可以设置根据指定的寄存器地址来显示多种状态信息。
每种状态有对应的图片,文本可供显示。
这里只要显示文本的话,可以在元件属性设置时,切换到图片选项下,去除<使用图片>选项。
2019-12-08_165037.jpg
然后对每个状态的文件进行设置,
状态的多少根据需要设置。
2019-12-08_165050.jpg
比如多状态元件设置从LW9222读取数据,那么设置LW9222为0显示状态0信息,
设置为1显示状态1信息,设置为2显示状态2信息,等等。

还有一种是通过宏指令来实现。
这里编写一个实例来演示,界面如下:
2019-12-08_172804.jpg
界面上边可以输入0到6,显示不同多状态元件的对应状态下文本。
界面下边可以点击不同按钮,将LW9222每个对应二进制位设置为ON,
再触发一宏来进行判断与显示文本。
宏代码如下:
macro_command main()
char c[12]
short n=0
GetData(n, "Local HMI", LW, 9222, 1)
select case(n&0xFFFF)
case 0x01
StringCopy("AAAAAAAAAA", c[0])
break
case 0x02
StringCopy("BBBBBBBBBB", c[0])
break
case 0x04
StringCopy("CCCCCCCCCC", c[0])
break
case 0x08
StringCopy("DDDDDDDDDD", c[0])
break
case 0x10
StringCopy("EEEEEEEEEE", c[0])
break
end select
SetData(c[0], "Local HMI", LW, 500, 10)
//
bool b=false
SetData(b, "Local HMI", LB, 0, 1)
end macro_command

具体实现过程就不演示了。可以下载例程模拟运行参考。
例程下载地址:
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:EBProject1.rar 
文件大小:366.99 KB  售价:3金币
下载权限: 不限 以上或 VIP会员   [购买VIP]   [充值积分]   有问题联系我



回复

使用道具 举报

点击查看
快速回复 返回列表 客服中心 搜索