S7-1200 的 CPU V2.0 韌體版本已經可以完全支援Modbus通訊協定,所以可當作 Modbus RTU Master 主站(或 Modbus TCP Client 用戶端) 亦可當 Modbus RTU Slave 從站(或 Modbus TCP Server 伺服器)


如果要使用 Modbus RTU 功能,則必須外掛 RS-232 或 RS-485 通訊模組。

但要使用 Mudbus TCP/IP 功能,全系列的 S7-1200 CPU 都內建RJ-45的通訊介面,所以不必外掛通訊模組,因此要使用 Mudbus TCP/IP 時, S7-1200 是最好的選擇。

-----------------------------------------------------------------------------------------------------------------------------------------------------------

如何使用 Modbus TCP Client 功能?

使用 "MB_CLIENT" 指令(圖一)

Client的用法跟Master的用法是相同的,都是主動去抓取Server(Slave)的資料,因此當啟動 REQ 一次,則抓取一次。如果想要連續自動抓取,則必須使用程式邏輯概念自己寫出來。

例如:每1秒抓取一次,則在"REQ"使用系統內部Clock 1Hz即可。

圖 一



如何使用 Modbus TCP Server 功能?
使用 "MB_SERVER" 指令(圖二)

圖二

----------------------------------------------------------------------------------------------------------------------------------------------------------

不管是 Client 或 Server 指令,最後都需要一組 "DB" 來做資料的交換區(圖三)
圖三

開啟一個新DB
注意:Block access一定要選 "Standard - compatible with S7-300/S7-400"(圖四)
圖四

開啟新的DB後先檢查是否有看見 "Offset"(圖五)?如果沒有,請回到(圖四)再重建一個新的DB
資料名稱可以自取,例如取名"Data"。在選擇 Data type 為 Array(陣列)。
圖五

手動將Array的內容修改(圖六)
圖六
Array limit:連續幾筆資料,例如 1..10 ,從1到10筆

完成後就可以看到10筆word(圖七)
圖七

最後在 Server 或 Client 指令中輸入 Array 的起始語法(圖八)
圖八
標準語法:P#DB2.DBX0.0 word 10
P#:直接定址的語法
DB2.DBX0.0:DB2裡Offset的起始點
word 10:何種data type,連續10筆

範例程式下載點:
S7-1200 Modbus TCP Client_Server Test

------------------------------------------------------------------------------------------------------------------------------------------

Siemens SIMATIC PLC S7-400 S7-300 S7-1200 S7-200 LOGO HMI 西門子 自動化

相關文章

西門子台灣2011年 教育訓練時間表


SIMATIC STEP 7 Professional V11 供貨發佈



SIMATIC S7-1200 韌體版本 2.0 發佈..



S7-1200的Modbus RTU Master應用


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Bob 的頭像
    Bob

    鮑伯的PLC事件 (Bob's Blog)

    Bob 發表在 痞客邦 留言(0) 人氣()