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