1.示例系統的體系結構
本例中選用 S7-300 CPU 314C-PtP 作為 RS485 USS 串行通訊主站,連接一個 MM440 變頻器。連接多個 MM440 時與之相同。
2.軟件版本描述
需要軟件
STEP 7 V5.2 以上
PtP Param
Drive ES SIMATIC for Function Block Library DRVUSSS7(含手冊)
需要硬件
1:S7-300 CPU 314C-2PtP
2:MM440
3。串口通訊連接圖
S7-300PtP MM440
PIN 4 ……………………… … . PIN 30
PIN 11…………………… … … PIN 29
4.組態
4.1 組態MM440 USS 通訊參數
P003=3 訪問級
P700=5 通訊源,從USS 通訊接口
P1000=5 頻率設定點數據源,從USS 通訊接口
P2010=6 波特率為9.6K (7 為19.2K, 8 為38.4K)
P2011=1 USS 站號
P2012=4 USS PZD 長度
P2013=4 USS PKW 長度
P2014=1000 監控時間
4.2 組態S7-300PtP 串口通訊參數
5 plc 編程
5.1 拷貝 DRVUSSS7 庫程序到應用程序中
在本例中,站號為 1,PZD 和 PKW 為 4,在 OB100 初始化程序中修改相應程序:
讀寫多個站時必須使 PKW 和 PZD 數量相同且站號連續。DB50,100 任選,DB10 用于串口通訊塊。這些數據塊在啟動 CPU 時自動生成,不用在程序中新建。
5.2 注意在 FC30 中塊調用的順序(請參考 Drive ES SIMATIC DRVUSSS7 手冊)
FC21(USS 發送)– SFB60(串口發送)- FC22(USS 接收)- SFB61 (串口接收)
DB100 中的請求數據通過 DB50 來協調,指向 DB10 中,用 SFB60 發送出去;SFB61 用DB10 作為接收區,通過 DB50 來協調,最后按站排序放在 DB100 中。所以用戶關心的數據都放在 DB100 中。
5.3 DB100 中數據存儲的規則(請參考 Drive ES SIMATIC DRVUSSS7 手冊)
每一個站占用的數據為 2X(PKW+PZD)+PKW+6 字
在本例中,PKW 和PZD 為4,所占用數據的字為26 個字
圖4 中 PZD 為16,PKW 為4。
在本例中PKW 發送區為DB100.DBW22~28,PZD 發送區為DB100.DBW30~36,PKW 接收區為DB100.DBW38~44,PZD 接收區為DB100.DBW46~52 (n 為2) 。后續站數據結構與之相同,每個站占用26 個字。PKW 數據發送時,要置位通訊控制KSTW 第一位一次,在本例中為 DB100.DBX3.0,然后被程序復位。
6 數據傳送規則
對 PKW 區數據的訪問是同步通訊,即發一條信息,得到返回值后才能發第二條信息。PKW 一般為 4 個字。
1,讀寫 0002~1999 的參數。
如:讀 P0700, 700(DEC)=2BC(HEX)
PLC PKW 輸出=12BC,0000,0000,0000 1 表示讀請求
PLC PKW 輸入=12BC,0000,0000,0006 返回 1 表示單字長,值為 0006(HEX)
如:讀 P1082, 1082(DEC)=43A(HEX)
PLC PKW 輸出=143A,0000,0000,0000 1 表示讀請求
PLC PKW 輸入=243A,0000,4248,0000 返回 2 表示雙字長,值為 42480000(HEX)=50.0(REAL)
如:寫 P1082, 1082(DEC)=43A(HEX)
PLC PKW 輸出=343A,0000,41F0,0000 3 表示寫雙字請求,值為
41F00000(HEX)=30.0(REAL)
PLC PKW 輸入=243A,0000,41F0,0000 返回 2 表示雙字長,確認修改完畢。
2,讀寫 2000~3999 的參數。
如:讀 P2010, 10(DEC)=A(HEX) (10=2010-2000)
PLC PKW 輸出=100A,8001,0000,0000 1 表示讀請求, 01 表示參數下標為 1
8 表示參數號碼相差 2000
PLC PKW 輸入=100A,8001,0000,0006 返回 1 表示單字長,值為 0006(HEX)
傳送命令參考 MM440 手冊。
3,PZD 參數為異步讀寫。
PLC 輸出,第一個字為控制字,第二個字為主設定值。(缺省)
PLC 輸入,第一個字為狀態字,第二個字為運行反饋值。(缺省)