西門子S7-1200如何點(diǎn)對點(diǎn) (PtP) 通信

作者: 2019年05月10日 來源:全球化工設(shè)備網(wǎng) 瀏覽量:
字號:T | T
西門子S7-1200如何點(diǎn)對點(diǎn)(PtP)通信CPU支持下列基于字符的串行協(xié)議的點(diǎn)對點(diǎn)通信(PtP):PtPUSSModbusPtP可提供最大的自由度和靈活性,但需要在用戶程序中包含大量的實(shí)現(xiàn)。PtP可用于實(shí)現(xiàn)多種可能性:能夠?qū)⑿畔⒅苯影l(fā)送

西門子S7-1200如何點(diǎn)對點(diǎn) (PtP) 通信

CPU 支持下列基于字符的串行協(xié)議的點(diǎn)對點(diǎn)通信 (PtP):

  • PtP
  • USS
  • Modbus

PtP 可提供最大的自由度和靈活性,但需要在用戶程序中包含大量的實(shí)現(xiàn)。

PtP 可用于實(shí)現(xiàn)多種可能性:

  • 能夠?qū)⑿畔⒅苯影l(fā)送到外部設(shè)備,例如,打印機(jī)
  • 能夠從其它設(shè)備(例如,條碼閱讀器、RFID 閱讀器、第三方照相機(jī)或視覺系統(tǒng)以及許多其它類 型的設(shè)備)接收信息
  • 能夠與其它設(shè)備(例如,GPS 設(shè)備、第三方照相機(jī)或視覺系統(tǒng)、無線調(diào)制解調(diào)器 以及更多其它設(shè)備)交換信息(發(fā)送和接收數(shù)據(jù))

這種類型的 PtP 通信屬于串行通信,它使用標(biāo)準(zhǔn) UART 來支持多種波特率和奇偶校驗(yàn)選項(xiàng)。RS232 和 RS422/485 通信模塊 (CM 1241) 以及 RS485 通信板 (CB 1241) 提供了用于執(zhí)行 PtP 通信的電氣接口

通過 PROFIBUS  PROFINET  PtP

V4.1 版的 S7-1200 CPU 與 STEP 7 V13 SP1 一起使用可以擴(kuò)展 PtP 的功能,使用戶能夠使用 PROFINET 或 PROFIBUS 分布式 I/O 機(jī)架與各種設(shè)備(RFID 閱讀器、GPS 設(shè)備和其它設(shè)備)通信。

  • PROFINET:可以將 S7-1200 CPU 的以太網(wǎng)接口連接至 PROFINET接口模塊??赏ㄟ^機(jī)架中 PtP 通信模塊以接口模塊實(shí)現(xiàn)與 PtP 設(shè)備的串行通信。
  • PROFIBUS:在 S7-1200 CPU 機(jī)架左邊插入 PROFIBUS 通信模塊。將 PROFIBUS 通信模塊連接至 PROFIBUS 接口模塊的機(jī)架??赏ㄟ^機(jī)架中 PtP 通信模塊以接口模塊實(shí)現(xiàn)與 PtP 設(shè)備的串行通信。

出于這個(gè)原因,S7-1200 支持兩組 PtP 指令:

  • 早期點(diǎn)對點(diǎn)指令:這些指令適用于 V4.0 版之前的 S7-1200,并且只能通過 CM 1241 通信模塊或 CB 1241 通信板進(jìn)行串行通信。
  • 點(diǎn)對點(diǎn)指令:這些指令具備早期指令的所有功能,并且增添了連接 PROFINET 和 PROFIBUS 分布式 I/O 的功能。這些點(diǎn)對點(diǎn)指令可用于組態(tài)分布式 I/O 機(jī)架中 PtP 通信模塊與 PtP 設(shè)備之間的通信。要使用這些點(diǎn)對點(diǎn)指令,S7-1200 CM 1241 模塊的固件版本必須不得低于 V2.1。

說明

用于 S7-1200 的 V4.1版本時(shí),可以對所有類型的點(diǎn)對點(diǎn)通信使用點(diǎn)對點(diǎn)指令:串行通信、基于 PROFINET 的串行通信和基于 PROFIBUS 的串行通信。STEP 7 提供早期點(diǎn)對點(diǎn)指令的目的僅是為了支持現(xiàn)有程序。無論對于 V4.1 CPU 或 V4.0 還是更早版本的 CPU,早期指令仍然有效。無須對之前程序的指令進(jìn)行轉(zhuǎn)換。

組態(tài)通信端口

您可以使用以下各種方法組態(tài)通信接口:

  • 使用STEP 7 中的設(shè)備組態(tài)組態(tài)端口參數(shù)(波特率和奇偶校驗(yàn))、發(fā)送參數(shù)和接收參數(shù)。 CPU 存儲(chǔ)設(shè)備組態(tài)設(shè)置,并在循環(huán)上電和從 RUN 模式切換到 STOP 模式后應(yīng)用這些設(shè)置。
  • 使用Port_Config、Send_Config 和 Receive_Config指令設(shè)置參數(shù)。 這些指令設(shè)置的端口設(shè)置在 CPU 處于 RUN 模式期間有效。 在切換到 STOP 模式或循環(huán)上電后,這些端口設(shè)置會(huì)恢復(fù)為設(shè)備組態(tài)設(shè)置。組態(tài)硬件設(shè)備 之后,通過選擇機(jī)架上的某個(gè) CM 或CB(如果已組態(tài))來組態(tài)通信接口的參數(shù)。

窗口中的“屬性”(Properties) 選項(xiàng)卡顯示所選 CM 或 CB 的參數(shù)。 選擇“端口組態(tài)”(Port configuration) 以編輯以下參數(shù):

  • 波特率
  • 奇偶校驗(yàn)
  • 每個(gè)字符的數(shù)據(jù)位數(shù)
  • 停止位的數(shù)目
  • 流控制(僅限 RS232)
  • 等待時(shí)間

對于 CM 1241 RS232 和 CB RS485(除僅 CM 1241 RS232 支持的流控制外),無論是組態(tài) RS232 或 RS485 通信模塊還是 RS485

通信板,端口組態(tài)參數(shù)都是相同的。 但是,參數(shù)值可以不同。對于 CM 1241 RS422/485,您還具有下列所示的額外端口組態(tài)選項(xiàng)。 CM 1241 RS422/485 模塊的 422 模式還支持軟件流控制。

選擇“端口組態(tài)”(Port configuration) 以編輯以下RS422/485 參數(shù):

1、“工作模式”(Operating mode):

– 全雙工 (RS422) 四線制模式(點(diǎn)對點(diǎn)連接)

– 全雙工 (RS422) 四線制模式(多點(diǎn)主站)

– 全雙工 (RS422) 四線制模式(多點(diǎn)從站)

– 半雙工 (RS485) 兩線制模式

2、“接收線路初始狀態(tài)”(Receive line initial state):

– 無

– 正向偏置(信號 R(A) 0V、信號 R(B) 5V)

STEP 7 用戶程序還可通過 Port_Config 指令組態(tài)端口或更改現(xiàn)有組態(tài)。 指令主題提供更多關(guān)于工作模式和初始線路狀態(tài)以及其它參數(shù)的詳細(xì)信息。

參數(shù)定義
波特率波特率的默認(rèn)值為 9.6 Kbps。 有效選項(xiàng)有: 300 波特、600 波特、1.2 Kb、2.4 Kb、4.8 Kb、9.6 Kb、19.2 Kb、38.4 Kb、57.6 Kb、76.8 Kb 和 115.2

Kb。

奇偶校驗(yàn)奇偶校驗(yàn)的默認(rèn)值是無奇偶校驗(yàn)。 有效選項(xiàng)有:
無奇偶校驗(yàn)、偶校驗(yàn)、奇校驗(yàn)、傳號(奇偶校驗(yàn)位始終設(shè)為
1)和空號(奇偶校驗(yàn)位始終設(shè)為 0)。
每個(gè)字符的數(shù)據(jù)位數(shù)字符中的數(shù)據(jù)位數(shù)。 有效選擇為 7 或 8。
停止位的數(shù)目停止位的數(shù)目可以是1或 2。 默認(rèn)值是 1。
流控制對于 RS232 通信模塊,可以選擇硬件或軟件流控制 。
如果選擇硬件流控制,則可以選擇是 RTS 信號始終激活還是切換 RTS。
如果選擇軟件流控制,則可以定義 XON 和 XOFF 字符。
RS485 通信接口不支持流控制。 CM 1241 RS422/485 模塊的 422
模式支持軟件流控制。
等待時(shí)間等待時(shí)間是指 CM 或 CB 在斷言 RTS 后等待接收 CTS 的時(shí)間,或者在接收 XOFF 后等待接收 XON 的時(shí)間,具體取決于流控制類型。 如果在通信接口收到預(yù)期的 CTS 或 XON 之前超過了等待時(shí)間,CM 或 CB 將中止傳送操作并向用戶程序返回錯(cuò)誤。 指定等待時(shí)間,以毫秒表示。 范圍是 0 到 65535 毫秒。
工作模式選擇工作模式 RS422 或 RS485 以及網(wǎng)絡(luò)組態(tài)。
接收線路初始狀態(tài)選擇偏置選項(xiàng)。 有效值為無、正向偏置和反向偏置。 反向偏置用于檢測電纜斷線。

管理流控制

流控制是指為了不丟失數(shù)據(jù)而用來平衡數(shù)據(jù)發(fā)送和接收的一種機(jī)制。 流控制可確保傳送設(shè)備發(fā)送的信息量不會(huì)超出接收設(shè)備所能處理的信息量。 流控制可以通過硬件或軟件來實(shí)現(xiàn)。 RS232 CM 支持硬件及軟件流控制。 RS485 CM 和 CB 不支持流控制。 CM 1241 RS422/485 模塊的 422 模式支持軟件流控制。 可在組態(tài)端口 時(shí)或使用 PORT_CFG 指令指定流控制類型。

硬件流控制通過請求發(fā)送 (RTS, Request To Send) 和允許發(fā)送 (CTS, Clear To Send) 通信信號來實(shí)現(xiàn)。 對于 RS232 CM,RTS 信號從引腳 7 輸出,而 CTS 信號通過引腳 8 接收。

RS232 CM 是 DTE(Data Terminal Equipment,數(shù)據(jù)終端設(shè)備)設(shè)備,其將 RTS 斷言為輸出并將 CTS 作為輸入來監(jiān)視。

硬件流控制: RTS 切換

如果為 RS232 CM 啟用 RTS 切換的硬件流控制,則模塊會(huì)將 RTS 信號設(shè)置為激活狀態(tài)以發(fā)送數(shù)據(jù)。 它還會(huì)監(jiān)視 CTS 信號以確定接收設(shè)備是否能接收數(shù)據(jù)。 CTS 信號激活后,只要 CTS 信號保持激活狀態(tài),模塊便可發(fā)送數(shù)據(jù)。 如果 CTS 信號變?yōu)榉羌せ顮顟B(tài),則傳送必須停止。

CTS 信號變?yōu)榧せ顮顟B(tài)時(shí),傳送會(huì)繼續(xù)執(zhí)行。 如果 CTS 信號在組態(tài)的等待時(shí)間內(nèi)未激活,則模塊會(huì)中止傳送并向用戶程序返回錯(cuò)誤。 在端口組態(tài)中指定等待時(shí)間。

對于需要“傳送已激活”信號的設(shè)備,適合使用 RTS 切換流控制。 例如,無線調(diào)制解調(diào)器使用 RTS 作為“鍵”信號來激勵(lì)無線發(fā)送器。 RTS 切換流控制對于標(biāo)準(zhǔn)電話調(diào)制解調(diào)器不起作用。 對電話調(diào)制解調(diào)器使用“RTS 始終激活”選項(xiàng)。

硬件流控制: RTS 始終激活

在“RTS 始終激活”模式下,CM 1241 默認(rèn)情況下將 RTS 設(shè)置為激活狀態(tài)。 設(shè)備(如電話調(diào)制解調(diào)器等)監(jiān)視來自 CM 的 RTS 信號,并將該信號用作允許發(fā)送信號。 調(diào)制解調(diào)器僅在 RTS 處于激活狀態(tài)時(shí)才向 CM 傳送數(shù)據(jù),即,電話調(diào)制解調(diào)器在見到激活的 CTS 信號后發(fā)送數(shù)據(jù)。如果 RTS 處于非激活狀態(tài),電話調(diào)制解調(diào)器不向 CM 傳送數(shù)據(jù)。

要使調(diào)制解調(diào)器隨時(shí)都能向 CM 發(fā)送數(shù)據(jù),請組態(tài)“RTS 始終激活”硬件流控制。 CM 因此會(huì)將 RTS 信號設(shè)置為始終激活。 即使模塊無法接受字符,CM 也不會(huì)將 RTS 設(shè)置為非激活狀態(tài)。 傳送設(shè)備必須確保不會(huì)使 CM 的接收緩沖區(qū)超負(fù)荷運(yùn)行。

利用數(shù)據(jù)終端就緒 (DTR) 和數(shù)據(jù)設(shè)備就緒 (DSR) 信號

對于這兩種硬件流控制類型的任何一種,CM 都會(huì)將 DTR 設(shè)置為激活狀態(tài)。 只有當(dāng) DSR信號變?yōu)榧せ顮顟B(tài)時(shí),模塊才會(huì)進(jìn)行傳送。 僅在發(fā)送操作開始時(shí)評估 DSR 的狀態(tài)。 如果 DSR 在傳送操作開始后變?yōu)榉羌せ顮顟B(tài),將不能暫停傳送操作。

軟件流控制

軟件流控制使用消息中的特殊字符來實(shí)現(xiàn)流控制。 將組態(tài)表示 XON 和 XOFF的十六進(jìn)制字符。

XOFF 指示傳送必須停止。 XON 指示傳送可以繼續(xù)。 XOFF 和 XON不得是相同的字符。傳送設(shè)備從接收設(shè)備收到 XOFF 字符時(shí),將停止傳送。 傳送設(shè)備收到 XON字符時(shí),傳送又繼續(xù)進(jìn)行。 如果 CM 在通過端口組態(tài)指定的等待時(shí)間內(nèi)沒有收到 XON 字符,它將中止傳送并向用戶程序返回錯(cuò)誤。

軟件流控制需要全雙工通信,因?yàn)樵趥魉瓦^程中接收伙伴必須能夠?qū)?nbsp;XOFF 發(fā)送到傳送伙伴。 軟件流控制只能用于僅包含 ASCII 字符的消息。 二進(jìn)制協(xié)議無法使用軟件流控制。

組態(tài)傳送(發(fā)送)和接收參數(shù)

在 CPU 可進(jìn)行 PtP 通信前,必須組態(tài)傳送(或發(fā)送)消息和接收消息的參數(shù)。 這些參數(shù)決定了在向目標(biāo)設(shè)備傳送消息或從目標(biāo)設(shè)備接收消息時(shí)的通信工作方式。

組態(tài)傳送(發(fā)送)參數(shù)

在 CPU 的設(shè)備組態(tài)中,通過設(shè)置所選接口的“傳送消息組態(tài)”(Transmit message configuration) 屬性,來組態(tài)通信接口傳送數(shù)據(jù)的方式。

還可以使用 Send_Config指令,從用戶程序動(dòng)態(tài)組態(tài)或更改傳送消息參數(shù)。在用戶程序中通過 Send_Config 指令設(shè)置的參數(shù)值會(huì)覆蓋“傳送消息組態(tài)”(Transmit message configuration) 屬性。 請注意,發(fā)生掉電時(shí),CPU 不會(huì)保留通過 Send_Config 指令設(shè)置的參數(shù)。

組態(tài)接收參數(shù)

在 CPU 的設(shè)備組態(tài)中,可以組態(tài)通信接口接收數(shù)據(jù)以及識(shí)別消息開始和結(jié)束的方式。 在所選接口的“接收消息組態(tài)”(Receive message configuration) 屬性中設(shè)置這些參數(shù)。

還可以在用戶程序中使用 Receive_Config 指令,

說明

在用戶程序中通過 Receive_Config 指令設(shè)置的參數(shù)值會(huì)覆蓋“接收消息組態(tài)”(Receive message configuration) 屬性。 請注意,發(fā)生掉電或轉(zhuǎn)為 STOP 狀態(tài)時(shí),CPU 不會(huì)保留通過 RCV_CFG 指令設(shè)置的參數(shù)。

消息開始條件

用戶可以決定通信接口識(shí)別消息開始的方式。 在滿足所組態(tài)的結(jié)束條件之前,開始字符以及組成消息的字符會(huì)一直進(jìn)入接收緩沖區(qū)。

可以指定多個(gè)開始條件。 如果指定多個(gè)開始條件,則只有在滿足所有開始條件后才認(rèn)為消息開始。 例如,如果用戶組態(tài)了線路空閑時(shí)間和特定開始字符,CM 或 CB 將首先查找要滿足的線路空閑時(shí)間要求,然后 CM 將查找指定的開始字符。 如果收到其它某個(gè)字符而不是指定的開始字符,CM 或 CB 將通過再次查找線路空閑時(shí)間來重新啟動(dòng)消息開始條件搜索。

參數(shù)定義
以任意字符開始“任意字符”條件指定,成功接收任何字符都將表示消息開始。 該字符是消息中的第一個(gè)字符。
線路中斷“線路中斷”條件指定在接收中斷字符后開始消息接收操作。
線路空閑“線路空閑”條件指定在接收線路空閑或平靜了指定位時(shí)間后開始消息接收操作。 一旦出現(xiàn)該條件,即啟動(dòng)消息接收。

① 字符

② 重啟線路空閑定時(shí)器

③ 檢測到線路空閑并啟動(dòng)消息接收操作

參數(shù)定義
特殊條件:指定通過特殊字符指示消息開始。 然后,該字符便成為消息中的第一個(gè)字符。
通過單個(gè)字符識(shí)別消息在該特定字符前接收到的任何字符都將被丟棄。 默認(rèn)字符是 STX。
開始
特殊條件:指定通過最多四個(gè)組態(tài)序列中的一個(gè)特殊字符序列來指示消息開始。
通過字符序列識(shí)別消息可以為每個(gè)序列最多指定 5 個(gè)字符。
開始 (Recognize對于每個(gè)字符位置,可以指定一個(gè)特定的十六進(jìn)制字符,或者指定在序列匹配時(shí)
message start with a忽略該字符(通配符字符)。
character sequence)字符序列中最后一個(gè)特定字符終止該開始條件序列。
程序根據(jù)組態(tài)的開始條件對進(jìn)入序列進(jìn)行評估,直到滿足開始條件為止。
只要滿足了開始序列,就會(huì)開始評估結(jié)束條件。
最多可組態(tài)四個(gè)特定字符序列。
如果幾個(gè)不同的字符序列都指示消息開始,則使用多序列開始條件。
如果與其中一個(gè)字符序列相匹配,消息就會(huì)開始。

檢查開始條件的順序是:

  • 線路空閑
  • 線路中斷
  • 字符或字符序列 檢查多個(gè)開始條件時(shí),如果有一個(gè)條件沒有滿足,則CM或 CB將從第一個(gè)所需的條件開始重新啟動(dòng)檢查。 CM 或 CB確定已滿足啟動(dòng)條件后,將開始評估結(jié)束條件。

示例組態(tài): 消息在兩個(gè)字符序列出現(xiàn)一個(gè)時(shí)開始

請注意以下消息開始條件組態(tài):

對于該組態(tài),只要出現(xiàn)其中一個(gè)序列,即會(huì)滿足開始條件:

  • 接到一個(gè)由五個(gè)字符構(gòu)成的序列,且其第一個(gè)字符是0x6A而第五個(gè)字符是 0x1C 時(shí)。 對于該組態(tài),位置 2、3 和 4 的字符可以是任意字符。 在接到第五個(gè)字符后,將開始評估結(jié)束條件。
  • 接到兩個(gè)連續(xù)的0x6A字符(前面為任意字符)時(shí)。 在這種情況下,會(huì)在接到第二個(gè) 0x6A 后開始評估結(jié)束條件(3 個(gè)字符)。 第一個(gè) 0x6A 前面的字符包含在開始條件中。滿足該開始條件的實(shí)例序列有:
  • <任意字符> 6A6A
  • 6A 12 14 181C
  • 6A 44 A5 D21C

消息結(jié)束條件

用戶還可以組態(tài)通信接口識(shí)別消息結(jié)束的方式。 可以組態(tài)多個(gè)消息結(jié)束條件。 如果出現(xiàn)組態(tài)條件中的任何一個(gè),消息就會(huì)結(jié)束。

例如,可以采用消息超時(shí) 300 ms、字符間超時(shí) 40 個(gè)位的時(shí)間以及最大長度 50個(gè)字節(jié)作為消息結(jié)束的結(jié)束條件。 如果接收消息的時(shí)間超過 300ms、任意兩個(gè)字符間的間隔超過 40 個(gè)位的時(shí)間或接收到 50 個(gè)字節(jié),消息即會(huì)結(jié)束。

示例組態(tài): 通過字符序列結(jié)束消息

請注意以下消息結(jié)束條件組態(tài):

在這種情況下,當(dāng)接收到兩個(gè)連續(xù)的 0x6A 字符(后跟任意兩個(gè)字符)時(shí),即滿足結(jié)束條件。 0x6A 0x6A 序列前面的字符不是結(jié)束字符序列的組成部分。 終止結(jié)束字符序列時(shí)需要在 0x6A 0x6A 序列后面加兩個(gè)字符。 字符位置 4 和 5 中接收的值不相關(guān),但必須接收它們才能滿足結(jié)束條件。

說明 如果想用字符序列來指示消息的結(jié)束,應(yīng)將該序列放置在最后一個(gè)字符位置。在上面的示例中,如果想用 0x6A 0x6A 結(jié)束不帶任何尾隨字符的消息,應(yīng)在字符位置4和5中組態(tài) 0x6A。

在消息中指定消息長度

選擇在消息中包括消息長度這一特殊條件時(shí),必須提供三個(gè)用于定義消息長度相關(guān)信息的 參數(shù)。

實(shí)際消息結(jié)構(gòu)會(huì)因所用的協(xié)議而變化。 三個(gè)參數(shù)如下所示:

  • n:消息中出現(xiàn)長度說明符的字符位置(從1 開始)
  • 長度大?。洪L度說明符的字節(jié)數(shù)(1、2或 4)
  • 長度m:跟在長度說明符后、不包括在長度計(jì)數(shù)范圍內(nèi)的字符數(shù)

結(jié)束字符可不連續(xù)。 “長度 m”值可用于指定大小不包含在長度字段中的校驗(yàn)和字段的長度。

全球化工設(shè)備網(wǎng)(http://www.bhmbl.cn )友情提醒,轉(zhuǎn)載請務(wù)必注明來源:全球化工設(shè)備網(wǎng)!違者必究.

標(biāo)簽:

分享到:
免責(zé)聲明:1、本文系本網(wǎng)編輯轉(zhuǎn)載或者作者自行發(fā)布,本網(wǎng)發(fā)布文章的目的在于傳遞更多信息給訪問者,并不代表本網(wǎng)贊同其觀點(diǎn),同時(shí)本網(wǎng)亦不對文章內(nèi)容的真實(shí)性負(fù)責(zé)。
2、如涉及作品內(nèi)容、版權(quán)和其它問題,請?jiān)?0日內(nèi)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間作出適當(dāng)處理!有關(guān)作品版權(quán)事宜請聯(lián)系:+86-571-88970062