jzzjzq
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 63 個
工控威望: 201 點
下載積分: 568 分
在線時間: 73(小時)
注冊時間: 2013-03-15
最后登錄: 2024-09-26
查看jzzjzq的 主題 / 回貼
樓主  發(fā)表于: 2018-03-12 22:03
試著寫了一個宏,完全不行。
我想把一個字的值賦給一個位元件的數(shù)組,還要把一個字的某個位的狀態(tài)讀出賦給一個PLC內(nèi)的位元件要怎么寫呢。

macro_command main()
short a, b
bool wei[16]
short zhi
GetData(zhi, "Local HMI", LW, 0, 1)
for b=0 to 16
GETBIT(zhi, wei[b], b)
next b
for a=0 to 16
SetData(wei[a], "Local HMI", LB, a, 1)
next a
end macro_command
上面嘗試把LW0的16位分別賦給wei[16]這個數(shù)組,再把這個數(shù)組的值賦給LB0開始的16個位元件,但運行看不到效果。
tyw123456
級別: 家園常客

精華主題: 1 篇
發(fā)帖數(shù)量: 113 個
工控威望: 797 點
下載積分: 313 分
在線時間: 256(小時)
注冊時間: 2016-09-13
最后登錄: 2024-09-23
查看tyw123456的 主題 / 回貼
1樓  發(fā)表于: 2018-03-13 08:20
一個16位字符是16個bit,你這個循環(huán)0-16有17個bit了,你改了之后再模擬試試
靜水深流
jzzjzq
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 63 個
工控威望: 201 點
下載積分: 568 分
在線時間: 73(小時)
注冊時間: 2013-03-15
最后登錄: 2024-09-26
查看jzzjzq的 主題 / 回貼
2樓  發(fā)表于: 2018-03-13 08:28
好的,因為對威倫的宏不是很熟,您幫忙看下對屏內(nèi)部元件的寫入和讀取是這樣寫的嗎
tyw123456
級別: 家園?

精華主題: 1 篇
發(fā)帖數(shù)量: 113 個
工控威望: 797 點
下載積分: 313 分
在線時間: 256(小時)
注冊時間: 2016-09-13
最后登錄: 2024-09-23
查看tyw123456的 主題 / 回貼
3樓  發(fā)表于: 2018-03-13 08:35
對的 我模擬過沒問題,但是建議用unsigned 無符號的 這樣你給lw賦值的時候比較容易操作 有符號的有負(fù)數(shù)
靜水深流
jzzjzq
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 63 個
工控威望: 201 點
下載積分: 568 分
在線時間: 73(小時)
注冊時間: 2013-03-15
最后登錄: 2024-09-26
查看jzzjzq的 主題 / 回貼
4樓  發(fā)表于: 2018-03-13 08:38
感謝,我按您說的修改后也模擬成功了。感謝幫助