SIMATIC S7-200自由口通訊

一、概述 ?S7-200 CPU 具有自由口通信能力。 ?自由口通信是一種基于 RS485 硬件基礎(chǔ)上,允許應(yīng)用程序控制 S7-200 CPU 的通信端口、以實現(xiàn)一些自定義通信協(xié)議的通信方式。 ?S7-200 CPU 處于自由口通信模式時,通信功能完全由用戶程序控制,所有的通信任務(wù)和信息定義均需由用戶編程實現(xiàn)。 ?借助自由口通信模式,S7-200 CPU 可與許多通信協(xié)議公開的其他設(shè)備、控制器進行通信,其波特率為1200~115200bit/s。 ?S7-200 可通過 自由口通訊協(xié)議訪問下列設(shè)備: – 帶用戶端軟件的PC機 – 條 形碼閱讀 器 – 串 口 打印機 – 并 口 打印機 – S7-200 – S7-300 with CP 340 – 非Siemens PLC – 調(diào)制解調(diào)器
? 補充說明: ? (1)由于 S7-200 CPU 通信端口是半雙工通信口,所以發(fā)送和接受 不能同時進行。 ? ( 2)S7-200 CPU 通信口處于自由口模式下時,該通信口不能同時工 作在其他通信模式下。如不能端口1在進行自由口通信時,又使用端 口1進行 PPI 編程。 ? ( 3)S7-200 CPU 通信端口是 RS485 標(biāo)準(zhǔn),因此如果通信對象是 RS232 設(shè)備,則需要使用 RS232/PPI 電纜。 ? ( 4)自由口通信只有在 S7-200 CPU 處于 RUN 模式下才能被激活, 如果將 S7-200 CPU 設(shè)置為 STOP 模式,則通信端口將根據(jù) S7-200 CPU 系統(tǒng)塊中的配置轉(zhuǎn)換到 PPI 協(xié)議。 二、設(shè)置說明 工作模式定義: ? 使用自由口通信前,必須了解自由口通信工作模式的定義方法,即控 制字的組態(tài)。 ? S7-200 CPU 的自由口通信的數(shù)據(jù)字節(jié)格式必須含有一個起始位、一 個停止位,數(shù)據(jù)位長度為7位或8位,校驗位和校驗類型(奇、偶校驗) 可選。 ? S7-200 CPU 的自由口通信定義方法為將自由口通信操作數(shù)傳入特殊 寄存器 SMB30(端口0)和 SMB130 (端口1)進行端口定義,自由 口通信操作數(shù)定義如下所示:
XMT 指令: ? 自由口通信模式主要使用 XMT (發(fā)送)和 RCV (接收)兩條指令, 以及相應(yīng)的特殊寄存器。 ? XMT 指令利用數(shù)據(jù)緩沖區(qū)指定要發(fā)送的字符,用于向指定通信口以字 節(jié)為單位發(fā)送一串?dāng)?shù)據(jù)字符,一次最多發(fā)送255個字節(jié)。 ? XMT 指令完成后,會產(chǎn)生一個中斷事件( Port 0為中斷事件9, Port1為中斷事件26)。 ? XMT 指令的緩沖區(qū)格式如下表所示:
RCV 指令: ? RCV 指令可以從 S7-200 CPU 的通信口接收一個或多個數(shù)據(jù)字節(jié),接 收到的數(shù)據(jù)字節(jié)將被保存在接收數(shù)據(jù)緩沖區(qū)內(nèi)。 ? RCV 指令完成后,會產(chǎn)生一個中斷事件( Port 0為中斷事件23, Port1 為中斷事件24)。特殊寄存器 SMB86 和 SMB186 則分別提供 Port0 和 Port1 的接收信息狀態(tài)字節(jié)。 ? RCV 指令的緩沖區(qū)格式如下表所示:
三、自由口發(fā)送示例 1 功能要求 ? 記錄定時中斷次數(shù),將計數(shù)值轉(zhuǎn)化為ASCII字符串,再通過 CPU224XP 的 Port0 發(fā)送到計算機串口,計算機接受并利用超級終端 顯示與 S7-200 CPU 通信的內(nèi)容。 2 硬件需求 ? 帶串口的 PC 機、S7-200 CPU 224XP、RS 232 電纜(推薦采用西 門子 S7-200 串口編程電纜) 3 簡要實現(xiàn)步驟 ?(1)編寫 S7-200 PLC 程序。 ?(2)下載程序到 S7-200 PLC 中。 ?(3)配置計算機的超級終端。 ?(4)使用計算機上超級終端接收并顯示與 S7-200 CPU 通信的通信內(nèi)容。 ?1 規(guī)定緩沖區(qū)為 VB100 到 VB114 ,使用數(shù)據(jù)塊進行緩沖區(qū)定義。
? 在Step7- Micro/Win 中組態(tài)數(shù)據(jù)塊,如下圖所示 。 ? 16#0D和16#0A用于計算機的超級終端顯示需要。
? 2 程序結(jié)構(gòu)及用途 ? 主程序:根據(jù) I 0.3 狀態(tài)初始化端口1為自由口通信 ? SBR_0:定義端口0為自由口,初始化定時中斷 ? SBR_1: 定義端口0為普通 PPI 從站通信口 ? INT_0: 對定時中斷計數(shù)并從端口0發(fā)送計數(shù)值 ?1)主程序編程
? 2)SBR_0 編程
? 3)SBR_1 編程
? 4)INT_0 編程
? 補充說明:中斷事件10是由中斷0產(chǎn)生的時間中斷,該時間中斷的間 隔的范圍為1ms~255ms,中斷間隔的數(shù)值由 SMB34 定義。由于 RS232傳輸線由空閑狀態(tài)切換到接收模式需要切換時間(一般為 0.15~14ms),故為防止傳送失敗,設(shè)置的中斷間隔必須大于切換時 間,并再增加一些富余。 四、自由口接收示例 ? 1 程序結(jié)構(gòu)及用途 ? 主程序:根據(jù)I 0.3 狀態(tài)初始化端口1為自由口通信 ? SBR_0:定義端口0為自由口,初始化接收指令 ? SBR_1:定義端口0為普通 PPI 從站通信口 ? INT_0:在 QB0 輸出接收到的第一個字節(jié) ? 1) 主程序編程
? 2) SBR_0 編程
? 3) SBR_1 編程
? 4) INT_0 編程