凹凸曼
級別: 探索解密
|
我在觸摸屏上做了兩個輸入值顯示,一個是直徑,一個周長。觸摸屏上輸入直徑然后周長根據程序運算變化,同時如果改變周長,直徑也會根據程序運算變化。但是現在只能輸入直徑周長跟著變化,反過來就不行了 |
---|---|
|
laihuaxun200
級別: 略有小成
|
可能通過宏指令實現啊,條件設為顯示元件輸入后執行。要做兩個不同宏指令,一個是直徑轉換為周長的,當輸入直徑后,把計算出的周長傳送給周長顯示元件;一個是周長轉換為直徑的,當輸入周長后把計算出的直徑傳送給直徑顯示元件。這兩個宏指令分別對應相應的顯示輸入元件。 |
---|---|
|
凹凸曼
級別: 探索解密
|
我是程序里寫了直徑換算周長的程序,還有周長逆推直徑的程序。但是觸摸屏的設置監控地址和寫入地址是分開設置的。比如直徑的寫入地址是D0 監控地址是D1 周長的寫入地址是D2,監控地址是D3. 我輸入直徑D0是60,監控地址沒有變化還是0 周長的監控地址D3是188.4 寫入地址d2 是0. 反過來再輸入周長寫入地址d2為300,周長監控地址D3沒有變還是188.4, 直徑的監控地址D1是95.4 寫入地址D0還是60.。這些數據無法整合,數據混亂的 |
---|---|
|
凹凸曼
級別: 探索解密
|
宏指令沒用過,不會,我就是想通過程序的轉換來實現,但是現在不能達到數據的同步 |
---|---|
|
laihuaxun200
級別: 略有小成
|
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 |
---|---|
|
凹凸曼
級別: 探索解密
|
不對啊,這樣我D2是一直占位的,在觸摸屏上是不能輸入的,D2和D3的數據處于占位狀態,輸入不進去的 |
---|---|
|