2017年7月26日 星期三

不用PLC,如何讀取外部Modbus裝置,用HMI也可以

用PLC讀取Modbus好麻煩喔!
要設定好多東西,有沒有簡單一點的方式!!

其實在電控領域裡,有很多裝置都是用Modbus在通訊,
只是簡化到相當的程度,所以感覺不出來。



請先看這篇:HMI(人機介面)沒有的通訊協議,該怎麼使用?

其實台達HMI跟台達PLC之間,就是用Modbus在通訊,
只是簡化到看不出來。





所以:
HMI本身就把Modbus通訊協議都寫進入了!

可以利用HMI來讀取外部Modbus的數值,再寫回PLC。
這樣PLC就不需寫一堆的通訊格式了。


範例:HMI讀取外部電錶的數值
https://www.youtube.com/watch?v=N1IZDwI65TI


HMI之所以跟很多PLC連絡,可以之間讀X、Y、T、C這些值,
是因為其內部有個轉換檔,當你選擇該PLC設定檔時,
選定到X,HMI自動轉成Modbus功能碼及指令碼。

因為畢竟Modbus的裝置較多,所以HMI廠商還沒有一一建入,
但我們還是可以利用標準的Modbus功能,自已寫功能碼及位址,
還是可以跟外部的裝置做連結。

像台達HMI就還有保留,最基本的Modbus功能,可以選用。
紅框內都是試過可用。

差別在於:ASCII(RTU) nw輸入的位址是30001  或是40001,這種5位數的,已內部功能碼的位址。
位址40001 =功能碼03 + 位址0000H
位址30001=功能碼04 + 位址0000H


而ASCII Hex 是16進入的位址,預設功能碼03。





沒有留言:

張貼留言