jzzjzq
級別: 略有小成
|
最近寫一個程序,有四臺西門子S1200之間通過TCP協議互聯,通訊的數據都是用字節發送,接受端使用這些數據時,卻是以字或雙字使用。目前我不了解的是 A 發送數據是否默認是字節?能不能本來是INT就發送INT? B 如果原數據為INT,而只能發送字節,接受端使用這個數據時,是否只能用DBX.DBWX 這樣的形式來引用?這樣可以使用,但是會報無法通過變量來分配的警報。我感覺好似不是正規途徑。 可能很基礎,但是看手冊沒有找到相關的說明,還請各位幫助。 |
---|---|
|
湛藍小爾
工控交流 Q703935819
級別: 家園常客
|
不是非得BYTE,參考我的帖子,TCP通訊,你找一下。 定義發送和接收的數組和ARRY,INT也是可以的。取消優化塊的訪問 |
|
---|---|---|
本帖最近評分記錄:
|
jzzjzq
級別: 略有小成
|
如果發送INT,指令里的LEN是否要乘2呢?另外,我的數據并不是很規整的INT或是BYTE,假如用BYTE發送了INT數據,要如何引用]呢?望賜教 例如此圖中的數據 在引用時這樣寫是否正確 [ 此帖被jzzjzq在2018-07-16 12:52重新編輯 ] |
---|---|
|
湛藍小爾
工控交流 Q703935819
級別: 家園常客
|
你到底需要發送什么樣的數據,我給你舉個例子 |
|
---|---|---|
|
jzzjzq
級別: 略有小成
|
有Bit也有INT也有dint。 所以統一按BYTE發的,現在的問題就是接收到以后,用那種方式引用收到的數據。我上貼中有圖,請幫忙看一下是否正確。 是否是這樣的,比如A (PLC)發送到B(PLC) 12個BIT、5個BYTE,3個INT。那么在A的發送塊 依次建立12個BIT、5個BYTE,3個INT。 同樣,在B(PLC)接收塊里依次建立12個BIT、5個BYTE,3個INT,然后發送和接受指令的LEN長度都定為13個字節,這樣是否正確? [ 此帖被jzzjzq在2018-07-17 16:27重新編輯 ] |
---|---|
|