1、本例程的係統配置:
(1)安裝Step7Micro/Win software和Modbus協議庫,西門子在Micro/WINV4.0 SP5
中正式推出ModbusRTU主站協議庫。
(2)PC/PPI電纜、S7-200、電源模塊、通信電纜。
(3)V20驅動裝置和一台PC機。
2、在使用MicroWinsoftware 創建項目之前,確認Modbus Master 庫文件已經安裝:
3、創建一個(ge) 例程:
3.1 設置通訊接口
本例程使用PC/PPI電纜。
3.2 建立PC和PLC之間的連接
“雙擊刷新”搜索到PLC後,點擊”確認”。
3.3 用電纜將S7-200Port 1端口與(yu) V20的RS485接口相連(注意端口連接規則:V20的
P+對3、N-對8),如下圖所示:
3.4 變頻器參數設置:
V20 可以通過選擇連接宏Cn011實現ModbusRTU控製,也可以通過直接更改變頻器參數的方法來實現。參數設置如下表所示:
參數 | 描述 | Cn011默認值 | 實際設置 | 備注 |
P0700[0] | 選擇命令源 | 5 | 5 | RS485為命令源 |
P1000[0] | 選擇頻率 | 5 | 5 | RS485為速度設定值 |
P2023[0] | RS485協議選擇 | 2 | 2 | MODBUS RTU協議 |
P2010[0] | USS/MODBUS波特率 | 6 | 6 | 波特率為9600bps |
P2021[0] | MODBUS地址 | 1 | 3 | V20的MODBUS 地址 |
P2022[0] | MODBUS應答超時 | 1000 | 2000 | 向主站發回應答的最大時間 |
P2014[0] | USS/MODBUS報文間斷時間 | 100 | 0 | 接收數據時間 |
寄存器編號 | 描述 | 訪問類型 | 定標係數 | 讀取 | 寫入 | |
控製數據 | 40100 | 控製字 | R/W | 1 | PZD1 | PZD1 |
40101 | 主設定值 | R/W | 1 | PZD2 | PZD2 | |
狀態數據 | 40110 | 狀態字 | R | 1 | PZD1 | |
40111 | 速度實際值 | R | 1 | PZD2 | ||
P1120 | 40322 | 斜坡上升時間 | R/W | 100 | P1120 | P1120 |
P1121 | 40323 | 斜坡下降時間 | R/W | 100 | P1121 | P1121 |
3.6 庫存儲(chu) 區分配:在編譯程序之前,選擇“程序塊”->“ 庫” 右鍵,選擇“庫存儲(chu) 區”。在點擊“建議地址” 選擇V存儲(chu) 區的地址後點擊“OK”退出。
3.6 初始化ModbusMaster端口:
EN 使能:必須保證每一掃描周期都被使能(使用SM0.0)。
Mode 模式:為(wei) 1 時,使能Modbus 協議功能;為(wei) 0 時恢複為(wei) 係統PPI 協議。
Baud 波特率:支持的通訊波特率為(wei) 4800,9600,19200 。
Parity 校驗:校驗方式選擇(V20采用偶校驗)
0=無校驗
1=奇較驗
2=偶較驗
Timeout 超時:主站等待從(cong) 站響應的時間,以毫秒為(wei) 單位,典型的設置值為(wei) 1000 毫秒(1 秒),允許設置的範圍為(wei) 1 - 32767。
注意:這個(ge) 值必須設置足夠大以保證從(cong) 站有時間響應。
Done 完成位:初始化完成,此位會(hui) 自動置1。
Error:初始化錯誤代碼。
3.7 調用Modbus RTU 主站讀寫(xie) 功能塊MBUS_MSG,發送一個(ge) Modbus請求:
3.7.1 寫(xie) 入控製字1和速度實際值:
EN 使能:同一時刻隻能有一個(ge) 讀寫(xie) 功能(即MBUS_MSG)使能。
注意:V20對於(yu) 寫(xie) 指令同一時刻隻運行對一個(ge) 保持寄存器操作;讀指令同一時刻最大允許操作125 個(ge) 保持寄存器。
First 讀寫(xie) 請求位:每一個(ge) 新的讀寫(xie) 請求必須使用脈衝(chong) 觸發。
Slave 從(cong) 站地址:可選擇的範圍1 - 247 。
RW 請求方式:0 =讀,1 =寫(xie) 。
Count 數據個(ge) 數通訊的數據個(ge) 數(位或字的個(ge) 數)。
注意:Modbus主站可讀/寫(xie) 的最大數據量為(wei) 120個(ge) 字(是指每一個(ge) MBUS_MSG 指令)。
DataPtr 數據指針:1. 如果是讀指令,讀回的數據放到這個(ge) 數據區中;
2. 如果是寫(xie) 指令,要寫(xie) 出的數據放到這個(ge) 數據區中。
Done 完成位:讀寫(xie) 功能完成位。
Error 錯誤代碼:隻有在Done 位為(wei) 1時,錯誤代碼才有效。
常用的控製字:
047E :運行準備
047F :正轉啟動
0C7F :反轉啟動
04FE :故障確認
3.7.2 讀取狀態字1和速度實際值:
3.7.3 讀取斜坡上升時間P1120:
3.7.4 寫(xie) 入斜坡下降時間P1121:
3.8 通過狀態表控製和讀取變頻器的狀態:
對於(yu) 斜坡上升時間P1120,從(cong) 寄存器列表中可以看到40322的寄存器的定標係數是100,讀取過來的值為(wei) :VW1310=1000,所以參數P1120=1000/100=10。
4 Modbus錯誤代碼:
Done 完成位:讀寫(xie) 功能完成位
Error 錯誤代碼:隻有在Done 位為(wei) 1時,錯誤代碼才有效
代碼 |
描述 |
0 |
無錯誤 |
1 |
響應校驗錯誤 |
2 |
未用 |
3 |
接收超時(從(cong) 站無響應) |
4 |
請求參數錯誤(slave address, modbus address, count ,R/W) |
5 |
Modbus /自由口未使能 |
6 |
Modbus 正在忙於(yu) 其他請求 |
7 |
響應錯誤(響應不是請求的操作) |
8 |
響應CRC校驗和錯誤 |
101 |
從(cong) 站不支持請求的功能 |
102 |
從(cong) 站不支持數據地址 |
103 |
從(cong) 站不支持此種數據類型 |
104 |
從(cong) 站設備故障 |
105 |
從(cong) 站接收了信息,但是響應被延遲 |
106 |
從(cong) 站忙,拒絕了該信息 |
107 |
從(cong) 站拒絕了信息 |
108 |
從(cong) 站存儲(chu) 區奇偶錯誤 |