1. 概述
對於一些通訊速率和穩定性要求不高的場合,串行通訊仍有很廣泛的應用。西門子標準的串行通訊的解決方案為CP340、CP341、CP440、CP441,但是如果現場CPU有集成的PTP接口,並且不需要使用一些加載協議(例如MODBUS),使用300C CPU的集成串口也可以進行ASCII,3964(R),RK512等協議的通訊。
以下僅以ASCII協議為例、使用485接口,介紹如何使用300C CPU的集成PTP口進行通訊。
2. 軟件環境
2.1. STEP7 V5.5
用於編寫PLC程序,此軟件需要從西門子購買,本文檔中所有的程序代碼均使用Step7 V5.5編寫。
2.2. 串口調試器
第三方的軟件,可以從網站上下載。
只要是支持ASCII協議串口調試軟件即可,沒有特殊要求。
3. 硬件列表
PS 3076ES7 307-1EA00-0AA0CPU 314-2PTP6ES7 314-6BF01-0AB0MMC6ES7 953-8LG11-0AA0PC適配器(USB)6ES7 972-0CB20-0XA0232轉485接頭表1 在該項目中使用的硬件
4. 組態配置
4.1. 結構示意圖
圖1 硬件結構圖
4.2. 硬件組態
4.2.1 在Step7中建立1個新的S7-300站點
圖2 建立新的S7-300 station
4.2.2 組態機架及CPU
圖3 選擇機架,將314C-2PTP CPU插入對應槽位
4.3. 設置PTP的接口參數
4.3.1 選擇協議並設置起始地址(其地址默認即可)
圖4 協議選擇
4.3.2 設置該PTP接口的波特率,數據位,停止位和奇偶校驗位
圖5 設置參數
4.3.3 選擇信息結束的方式
1、 以固定的字符延遲時間作為每幀數據的結束方式;
2、 以固定的字符長度作為每幀數據的結束方式;
3、 以結束字符作為每幀數據的結束方式。
圖6 報文結束條件設置
4.3.4 根據工藝要求設置接口類型
根據工藝可以選擇RS422或RS485接口。
圖7 設置接口類型
5. 功能塊的使用及管腳定義
5.1. SFB 60 "SEND_PTP" 數據發送功能塊管腳定義
表2 SFB 60 "SEND_PTP"管腳定義
5.2. SFB 61 "RCV_PTP" 數據接收功能塊管腳定義
表3 SFB 61 "RCV_PTP"管腳定義
注:
a) SFB60中的SD_1和SFB61中的RD_1的數據格式必須使用ANY格式(例:P#DB1.DBX0.0 BYTE 10),不能使用其它數據類型。
b) 數據發送功能塊SFB60中LEN定義的數據長度要小於等於SD_1發送數據區的長度。
c) 上述功能塊中的管腳DONE,NDR,STATUS,ERROR均為一個週期內有效,若想使用這些數據需要編程進行數據讀取。
5.3. SFB 62 "RES_RCVB” 刪除接收緩衝區功能塊管腳定義
表4 SFB 62 "RES_RCVB"管腳定義
5.4. 編程舉例
5.4.1 調用對應的通訊功能塊
進入對應的程序塊,在左側指令樹選擇功能塊,路徑如下:
Libraries—>Standard Library—>System Function Blocks—>SFB60\\SFB61。
圖8 通訊功能塊的具體位置
5.4.2 示例程序及注意事項
5.5. 實驗過程及傳輸結果
S7側發送使能為脈衝信號,將發送使能M0.0置位,然後通過發送完成信號將M0.0復位,以便下次繼續發送,S7將數據發送到對方的串口調試軟件。
S7側的接收使能為高電平信號,將接收使能M0.4置位,通過串口調試軟件將數據發送到S7側。
傳輸結果見下圖:
圖9 數據傳輸結果
5.6. 硬件接線
5.6.1 PTP接口的針腳定義
表5 PTP接口的針腳定義
5.6.2 485接口接線方式
圖10 485接口接線方式
5.6.3 422接口接線方式
圖11 422接口接線方式
6. 總結
由於ASCII協議使用的最為普遍,所以本文僅以ASCII協議為例,介紹瞭如何使用S7-300集成串行接口進行通訊。
關注我,後期會分享西門子PLC、
三菱PLC、歐姆龍PLC的全部經驗
----------------------------------從入門開始!
閱讀更多 文言看世界 的文章