噢! 這裡沒有做過展示程序,只能簡述程序的設計流程。
與 PLC 通訊的核心部分應該是大同小異,主要就是附加功能來應付各種情況。像是提到符號、整數的位元數(16/32/K4/K8)、浮點數等等,這些在 PC 端程序增加個轉換即可。C 使用指針、.NET 使用 BitConverter,要注意的部分是 S7-1200 為 big-endian。
而送給 PLC 的封包則是數量越少越好,所以盡量將每個封包都使用到極限。3U/3G 的極限很小,所以能玩得不多。5U 的彈性就遠比 3U/3G 來得強悍,可以將不同類型的位址塞進一個封包裡。1200 則是很單純,一個封包最多 20 組要求。
至于處理多臺 PLC,看要選擇多線程還是異步。會建議后者,但寫起來比較困難。而通訊和程序主體應分開兩個線程執行,避免意外鎖死。
測試時,同時連線 6 臺 PLC,通訊部分幾乎都是 0% CPU 使用率,而每臺 PLC 一秒約 50 次的通訊次數。
EDIT: 若有更好的方式,歡迎賜教~
[ 此帖被instanttw在2018-06-11 09:46重新編輯 ]