凹凸曼
级别: 探索解密
精华主题: 0
发帖数量: 40 个
工控威望: 141 点
下载积分: 1170 分
在线时间: 102(小时)
注册时间: 2015-10-16
最后登录: 2024-06-28
查看凹凸曼的 主题 / 回贴
楼主  发表于: 2016-08-11 16:33
我在触摸屏上做了两个输入值显示,一个是直径,一个周长。触摸屏上输入直径然后周长根据程序运算变化,同时如果改变周长,直径也会根据程序运算变化。但是现在只能输入直径周长跟着变化,反过来就不行了
laihuaxun200
级别: 略有小成
精华主题: 0
发帖数量: 219 个
工控威望: 362 点
下载积分: 1168 分
在线时间: 316(小时)
注册时间: 2013-11-20
最后登录: 2024-08-19
查看laihuaxun200的 主题 / 回贴
1楼  发表于: 2016-08-11 17:21
可能通过宏指令实现啊,条件设为显示元件输入后执行。要做两个不同宏指令,一个是直径转换为周长的,当输入直径后,把计算出的周长传送给周长显示元件;一个是周长转换为直径的,当输入周长后把计算出的直径传送给直径显示元件。这两个宏指令分别对应相应的显示输入元件。
laihuaxun200
级别: 略有小成
精华主题: 0
发帖数量: 219 个
工控威望: 362 点
下载积分: 1168 分
在线时间: 316(小时)
注册时间: 2013-11-20
最后登录: 2024-08-19
查看laihuaxun200的 主题 / 回贴
2楼  发表于: 2016-08-11 17:22
没用宏指令的话,可以通过PLC来执行转换程序。
凹凸曼
级别: 探索解密
精华主题: 0
发帖数量: 40 个
工控威望: 141 点
下载积分: 1170 分
在线时间: 102(小时)
注册时间: 2015-10-16
最后登录: 2024-06-28
查看凹凸曼的 主题 / 回贴
3楼  发表于: 2016-08-12 09:22
引用
引用第2楼laihuaxun200于2016-08-11 17:22发表的  :
没用宏指令的话,可以通过PLC来执行转换程序。

我是程序里写了直径换算周长的程序,还有周长逆推直径的程序。但是触摸屏的设置监控地址和写入地址是分开设置的。比如直径的写入地址是D0 监控地址是D1   周长的写入地址是D2,监控地址是D3.       我输入直径D0是60,监控地址没有变化还是0   周长的监控地址D3是188.4   写入地址d2 是0.     反过来再输入周长写入地址d2为300,周长监控地址D3没有变还是188.4,  直径的监控地址D1是95.4  写入地址D0还是60.。这些数据无法整合,数据混乱的
凹凸曼
级别: 探索解密
精华主题: 0
发帖数量: 40 个
工控威望: 141 点
下载积分: 1170 分
在线时间: 102(小时)
注册时间: 2015-10-16
最后登录: 2024-06-28
查看凹凸曼的 主题 / 回贴
4楼  发表于: 2016-08-12 09:27
引用
引用第1楼laihuaxun200于2016-08-11 17:21发表的  :
可能通过宏指令实现啊,条件设为显示元件输入后执行。要做两个不同宏指令,一个是直径转换为周长的,当输入直径后,把计算出的周长传送给周长显示元件;一个是周长转换为直径的,当输入周长后把计算出的直径传送给直径显示元件。这两个宏指令分别对应相应的显示输入元件。

宏指令没用过,不会,我就是想通过程序的转换来实现,但是现在不能达到数据的同步
laihuaxun200
级别: 略有小成
精华主题: 0
发帖数量: 219 个
工控威望: 362 点
下载积分: 1168 分
在线时间: 316(小时)
注册时间: 2013-11-20
最后登录: 2024-08-19
查看laihuaxun200的 主题 / 回贴
5楼  发表于: 2016-08-12 10:07
1、监控地址和写入址用一个就好了,没有必要另外搞一个监控地址。这样数据太多,容易把自己搞晕。
2、触摸屏如果输入的是32位数据,你的PLC的D寄存器应该是每两个为一个双字节数据。单个D寄存器是16位的。浮点数的话是32位的,一个数据要占用两个D寄存器。如:D0,D1只能表示一个小数的数据。

你只需要设定直径为D0 ,周长为D2,触摸屏输入直径后后把D0,的数据转换后传送给D2,触摸屏输入周长后,把D2的数据转换后传送给D0就好了,要用DMOV指令。
凹凸曼
级别: 探索解密
精华主题: 0
发帖数量: 40 个
工控威望: 141 点
下载积分: 1170 分
在线时间: 102(小时)
注册时间: 2015-10-16
最后登录: 2024-06-28
查看凹凸曼的 主题 / 回贴
6楼  发表于: 2016-08-12 10:27
引用
引用第5楼laihuaxun200于2016-08-12 10:07发表的  :
1、监控地址和写入址用一个就好了,没有必要另外搞一个监控地址。这样数据太多,容易把自己搞晕。
2、触摸屏如果输入的是32位数据,你的PLC的D寄存器应该是每两个为一个双字节数据。单个D寄存器是16位的。浮点数的话是32位的,一个数据要占用两个D寄存器。如:D0,D1只能表示一个小数的数据。

你只需要设定直径为D0 ,周长为D2,触摸屏输入直径后后把D0,的数据转换后传送给D2,触摸屏输入周长后,把D2的数据转换后传送给D0就好了,要用DMOV指令。

可能是程序写的不对。我这样   LD M1000    DEMUL D0 K314 D4      DEDIV D4 K100 D2    DEMUL D2 K100 D6      DEDIV D6 K314 D0
凹凸曼
级别: 探索解密
精华主题: 0
发帖数量: 40 个
工控威望: 141 点
下载积分: 1170 分
在线时间: 102(小时)
注册时间: 2015-10-16
最后登录: 2024-06-28
查看凹凸曼的 主题 / 回贴
7楼  发表于: 2016-08-12 11:57
引用
引用第6楼凹凸曼于2016-08-12 10:27发表的  :

可能是程序写的不对。我这样   LD M1000    DEMUL D0 K314 D4      DEDIV D4 K100 D2    DEMUL D2 K100 D6      DEDIV D6 K314 D0

不对啊,这样我D2是一直占位的,在触摸屏上是不能输入的,D2和D3的数据处于占位状态,输入不进去的
小飞哥
级别: 探索解密
精华主题: 0
发帖数量: 23 个
工控威望: 121 点
下载积分: 644 分
在线时间: 97(小时)
注册时间: 2016-04-07
最后登录: 2021-09-07
查看小飞哥的 主题 / 回贴
8楼  发表于: 2016-08-12 14:01
应该可以了。。
本帖最近评分记录:
  • 下载积分:+1(凹凸曼) 真诚感谢!
    凹凸曼
    级别: 探索解密
    精华主题: 0
    发帖数量: 40 个
    工控威望: 141 点
    下载积分: 1170 分
    在线时间: 102(小时)
    注册时间: 2015-10-16
    最后登录: 2024-06-28
    查看凹凸曼的 主题 / 回贴
    9楼  发表于: 2016-08-12 14:37
    引用
    引用第8楼小飞哥于2016-08-12 14:01发表的  :
    应该可以了。。

    非常感谢,我试试。想的我头都要炸了