在此示例中,S7-1200 CPU 通過 CM 1241 RS232 模塊與裝有終端仿真器的 PC 通信。此示例中的點對點組態和 STEP 7 程序說明了CPU如何從 PC 接收消息和將該消息回送到 PC。
必須將 CM 1241 RS232 模塊的通信接口連接到 PC 的 RS232 接口(通常為 COM1)。由于這兩個端口都是數據終端設備 (DTE),所以在連接這兩個端口時必須交換接收和發送引腳(引腳 2 和 3),可通過以下任何一種方法實現交換:
使用NULL 調制解調器適配器和標準RS232 電纜交換引腳 2 和 3。
使用已交換引腳2和 3 的 NULL 調制解調器電纜。通常可以將電纜兩端是否帶有兩個 9 針 D 型母頭連接器作為識別 NULL 調制解調器電纜的依據。
組態通信模塊
可通過 STEP 7 中的設備組態或通過用戶程序指令來組態 CM 1241。此示例使用設備組態方法。
端口組態:在“設備組態”(Device configuration) 中單擊 CM模塊的通信端口,然后如下所示組態該端口:
說明
“操作模式”和“接收線路初始狀態”的組態設置,只適用于 CM 1241 (RS422/RS485) 模塊。其它 CM 1241 模塊沒有這些端口組態設置。
傳送消息組態:接受傳送消息組態的默認值。在消息開始時將不發送中斷信號。
接收消息開始組態:將CM 1241 組態為在通信線路處于非激活狀態至少 50個位時間(在 9600 波特時約為 5 毫秒 = 50 * 1/9600)時開始接收消息:
接收消息結束組態:將 CM 1241 組態為在最多接收到 100 個字節或換行字符(十進制數 10 或十六進制數 a)時結束消息。結束序列最多允許序列中具有五個結束字符。該序列中的第五個字符是換行字符。前面四個結束序列字符均是“不相關”字符或不選擇的字符。CM 1241 不評估“不相關”字符,但會在零或更多“不相關”字符后面尋找指示消息結束的換行字符
RS422和RS485工作模式
組態RS422
對于 RS422 模式,有三種工作模式,具體取決于網絡組態。根據網絡中的設備選擇其中一種工作模式。接收線路初始狀態的不同選擇參考了如下所示的詳細情況。
全雙工(RS422)四線制模式(點對點連接):在網絡中有兩臺設備時選擇此選項。在接收線路初始狀態中:
– 在提供偏置和終端時(第 3 種情況),選擇無。
– 選擇正向偏置以使用內部偏置和終端(第 2 種情況)。
– 選擇反向偏置以使用內部偏置和終端,并為兩臺設備啟用電纜斷線檢測(第 1
種情況)。
全雙工(RS422)四線制模式(多點主站):當網絡具有一個主站和多個從站時,為主站選擇此選項。在接收線路初始狀態中:
– 在提供偏置和終端時(第 3 種情況),選擇無。
– 選擇正向偏置以使用內部偏置和終端(第 2 種情況)。
– 在此模式下,不能進行電纜斷線檢測。
全雙工(RS422)四線制模式(多點從站):當網絡具有一個主站和多個從站時,為所有從站選擇此選項。在接收線路初始狀態中:
– 在提供偏置和終端時(第 3 種情況),選擇無。
– 選擇正向偏置以使用內部偏置和終端(第 2 種情況)。
– 選擇反向偏置以使用內部偏置和終端,并為從站啟用電纜斷線檢測(第 1種情況)。
第1種情況:RS422,帶電纜斷線檢測
工作模式:RS422
接收線路初始狀態:反向偏置(有偏置,R(A)> R(B) > 0V)
電纜斷線:啟用電纜斷線檢測(發送器始終處于激活狀態)
第2種情況:RS422,不帶電纜斷線檢測,正向偏置
第3種情況:RS422:不帶電纜斷線檢測,無偏置
工作模式:RS422
接收線路初始狀態:無偏置
電纜斷線:無電纜斷線檢測(發送器僅在發送時才啟用) 偏置和終端由用戶在網絡末端節點處添加。
組態RS485
對于 RS485 模式,只有一種工作模式。接收線路初始狀態的不同選擇參考了如下所示的詳細情況。
半雙工(RS485)兩線制模式。在接收線路初始狀態中:
– 在提供偏置和終端時(第 5 種情況),選擇無。
– 選擇正向偏置以使用內部偏置和終端(第 4 種情況)。
第4種情況:RS485:正向偏置
工作模式:RS485
接收線路初始狀態:正向偏置(有偏置,R(B) > R(A) > 0V)
第5種情況:RS485:無偏置(外部偏置)
工作模式:RS485
接收線路初始狀態:無偏置(需要外部偏置)
編寫STEP7程序
此示例程序使用全局數據塊作為通信緩沖區,使用 RCV_PTP 指令從終端仿真器接收數據,使用 SEND_PTP 指令向終端仿真器回送緩沖數據。要對該示例編程,需要添加數據塊組態和主程序塊 OB1,如下所述。
全局數據塊“Comm_Buffer”:創建一個全局數據塊 (DB) 并將其命名為“Comm_Buffer”。在該數據塊中創建一個名為“buffer”,數據類型為“字節數組 [0 .. 99]”的值。
程序段1:只要 SEND_PTP 未激活,就啟用 RCV_PTP 指令。在程序段 4 中,MW20.0 中的 Tag_8 在發送操作完成時進行指示,因此是在通信模塊相應地準備好接收消息時進行指示。
程序段2:使用由 RCV_PTP 指令設置的 NDR 值(M0.0 中的 Tag_1)來復制接收到的字節數,并使一個標記(M20.0 中的 Tag_8)置位以觸發 SEND_PTP 指令。
程序段3:M20.0 標記置位時啟用 SEND_PTP 指令。同時還使用此標記將 REQ 輸入設置為 TRUE 一個掃描周期時間。REQ 輸入會通知 SEND_PTP 指令要傳送新請求。REQ 輸入必須僅在 SEND_PTP 的一個執行周期內設置為 TRUE。每個掃描周期都會執行 SEND_PTP 指令,直到傳送操作完成。CM 1241 傳送完消息的最后一個字節時,傳送操作完成。傳送操作完成后,DONE 輸出(M10.0 中的 Tag_5)將被置位為 TRUE 并持續 SEND_PTP 的一個執行周期。
程序段4:監視 SEND_PTP 的 DONE 輸出并在傳送操作完成時復位傳送標記(M20.0 中的 Tag_8)。傳送標記復位后,程序段 1 中的 RCV_PTP 指令可以接收下一條消息。
組態終端仿真器
必須設置終端仿真器以支持此示例程序。幾乎可以在 PC 上使用任何終端仿真器,例如,超級終端。確定終端仿真器處于斷開模式后,如下所述編輯各設置:
將終端仿真器設置為使用PC 上的 RS232 端口(通常為 COM1)。
將端口組態為 9600 波特、8 個數據位、無奇偶校驗(無)、1個停止位和無流控制。
更改終端仿真器設置使其仿真 ANSI終端。
組態終端仿真器ASCII 設置,使其在每行后(用戶按下 Enter 鍵后)發送換行信號。
本地回送字符,以便終端仿真器顯示輸入的內容。
運行示例程序
要運行示例程序,請執行以下步驟:
將STEP 7 程序下載到 CPU 并確保其處于 RUN 模式。
單擊終端仿真器上的“連接”(connect) 按鈕以應用組態更改并啟動與 CM1241的終端會話。
在PC 中鍵入字符并按 Enter 鍵。
終端仿真器會將輸入的字符發送到 CM 1241 和 CPU。然后,CPU 程序將這些字符回送到終端仿真器。
審核編輯:湯梓紅
-
plc
+關注
關注
5029文章
13697瀏覽量
471892 -
接口
+關注
關注
33文章
8926瀏覽量
153167 -
西門子
+關注
關注
98文章
3129瀏覽量
117708 -
S7-1200
+關注
關注
11文章
333瀏覽量
18425
原文標題:西門子S7-1200PLC點對點通信實例
文章出處:【微信號:PLC與自控設備,微信公眾號:PLC與自控設備】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
怎么讓Smart line系列觸摸屏與西門子S7-1200PLC與時間一樣

西門子S7-1200與組態軟件之間無線MODBUS通信實例

利用Modbus采集網關采集西門子S7-1200plc數據

西門子S7-1200PLC與V20變頻器進行MODBUS RTU通信步驟

西門子1200PLC之間的ModbusTCP通訊如何實現?

西門子Smart line系列觸摸屏如何與S7-1200PLC的時間同步

評論