主要內容:
S7-200 PLC串口通訊概覽
S7-200 PLC自由口通訊基礎
S7-200 PLC自由口通訊指令
S7-200 PLC自由口通訊常問問題
S7-200串口通訊主要包括:
1)Modbus—S7-200PLC與支持Modbus RTU協議的第三方設備通訊
RTU Master-Protocol(RTU主站協議)
RTU Slave-Protocol(RTU從站協議)
2)USS—S7-200PLC與SIEMENS驅動設備的通訊(如MM440等)
3)自由口通訊—S7-200PLC與自由協議的第三方設備間的通訊
S7-200系列PLC可以方便地同計算機、打印機、變頻器、掃描儀等其它的第三方設備進行無障礙通訊。
Modbus通訊和USS通訊是自由口通訊的特例。
對于S7-200系列的PLC而言,本體上存在著一個或兩個485通訊接口,這種接口即可實現S7-200串口通訊的功能,這類串口既可以做編程和監控,也可以做自由口通訊。但在其運行自由口通訊程序時,無法對其進行監控。這是因為對于同一個口而言在同一個時刻只能支持一種協議,而編程與下載的協議對于S7-200PLC而言是PPI協議,所以一旦在程序運行過程中使得它做自由口通訊的狀態則無法對其監控和下載。
下表是Modbus、USS以及自由口通訊的一些參數:
對于OSI七層模型而言,Modbus通訊、USS通訊和自由口通訊所處的位置可從上圖中看到。
(2)自由口通訊S7-200 CPU的通信口可以設置為自由口模式。選擇自由口模式后,用戶程序就可以完全控制通信端口的控制,通信協議也完全受用戶程序控制。
所謂的自由口通訊,就是通訊協議是由用戶自由定義的。
對于S7-200 PLC而言,基于本體自帶的485端口的網絡所應用的協議,除了PPI協議以外,其他都是自由口協議。例如USS協議、Modbus協議等等都是特定的自由口通訊協議。
西門子S7 -200系列PLC的自由口是基于RS485的硬件,采用正負兩根信號線作為傳輸線路。兩線間的電壓差為+2V~6V表示邏輯"1":兩線間的電壓差為-2V~-6V表示邏輯"0"。
西門子串口的插頭是九針標準插頭,其中各個針腳的定義在下表中得以體現,Zui重要的兩根線是表中紅線標出的3號腳和8號腳,也就是通常說的"3正8負",其中3對應信號B,8對應信號A,其它的引腳可以完成一些額外的功能,比如24V直流電的供應,5V直流電的供應以及發送請求等。但是對于Zui基本的串口通訊而言,3腳和8腳兩根線就足夠了,所以下面將著重介紹這兩根線的邏輯。
對于一根線上通過這兩根線就可以完成如此復雜的通訊過程,它的傳輸邏輯一個是"1"一個是"0",對于一個完整的報文幀而言,它的格式從下圖中可以看出,首先包括一位起始位,中間是7或8位數據位,接下來是一位校驗位或者沒有校驗位,Zui后附上一個停止位,從起始位到停止位是一個報文的全部內容,起始位在傳輸過程當中被永遠定義為邏輯0,7或8位數據位0或1的邏輯狀態完全取決于數據等于多少,校驗位可有可無,如果有的話還分為奇校驗和偶校驗,它Zui終的邏輯是取決于前面數據位的組合關系,停止位固定為1。在整個報文幀之外的范圍內,線上的狀態為1,即為空閑狀態。
一個數據幀的組成
對于一個數據幀的組成而言,它是由若干個待發生的字符組成的,從字符1、2到字符n;
一個傳輸字符的格式:
對于每一個字符的傳輸格式,它具有1位起始位,7或8位的數據位,0或1位的校驗位以及1位停止位;
一個傳輸字符的485電平:
對于每一個傳輸字符的485電平,起始位固定為0,數據位和校驗位是隨機的,停止位固定為1。
自由口同心速波特率可以設置為1200、2400、4800、9600、19200、38400、57600或112500 bit/s。
關于端口協議的選擇,字符傳輸格式,以及波特率的設定需通過設置SMB30(Port0)/SMB130(Port1)來完成。(具體可參照S7-200系統手冊)
自由口的指令一共有兩條,一條是發送指令,一條是接收指令。我們在談及發送或接收的時候往往會對立地去看讀或寫兩個概念,但是讀與寫,發送與接收并不是相同的概念,一般在談及讀或寫的時候往往是基于一些相對gaoji的通訊,比如主從之間的通訊,主站可以對從站進行讀或寫的操作。相對于讀和寫的概念而言,發送和接收指令更為基本,例如A和B兩個通訊對象,A發送一個報文給B,這是一個發送的過程,B接收到A發送給它的報文,這是接收的過程。而對于讀和寫則復雜的多,例如A作為主站想要讀取B的數據內容,則需要A首先發一個讀請求給B,B接收到了A發送過來的讀請求之后作出判斷,從而將A想要的數據由B再發送給A,由A接收到這個數據從而完成一次讀的過程。所以相對讀和寫,發送和接收的過程要基本的多,而自由口通訊用到的指令就是發送和接收指令。
發送的指令叫做XMT指令(如上圖),可以想見它的激活條件必須是一個沿觸發,得到沿的時機即為發送指令,向外發送數據的時機。PORT代表的是哪個口向外發數據,CPU224 XP以上的S7-200系列PLC有兩個通訊口,PORT=0的時候表示由0口向外發送數據,PORT=1的時候表示由1口向外發送數據。對于TBL而言,這是一個標示著發送數據的地址位,發送的數據格式如下表所示:
在TBL所指的數據區的第一個數據指的是待發送緩沖區的數據長度,從TBL+1開始則是被發送的數據,被發送數據的長度Zui多為255個。在上面的程序中,TBL=VB100,VB100當中存的就是待發送數據的數據長度,以字節為單位,例如如果VB100=5,則被發送的數據是VB101~VB105,VB100本身并不會被發送出去,它僅僅標示被發送數據的長度和位置
在應用自由口通訊時,發送的過程往往比較簡單,幾乎所有和協議有關的東西都在接收程序里。
接收的指令叫做RCV指令(如上圖),該指令同樣使用沿觸發,PORT同樣表示使用0口還是1口,TBL定義的是已經接收了的數據的長度,從TBL+1開始則是已經接收到的數據,n同樣是小于255。
例如在上面的程序中,若VB100=5,則已經接收到的數據是VB101~VB105。
在接收過程當中,可以通過SMB86(PORT0)/SMB186(PORT1)來監視接收狀態。SMB86/SMB186=0時,表示接收正在進行,否則表示接收已終止。
- 三菱PLC 與西門子PLC,你更喜歡哪一個 2024-12-02
- 理解PLC常見的八大問題,讓你修理調試更輕松 2024-12-02
- PLC工程師,如何根據手冊和圖紙,實現輸出接線 2024-12-02
- 三菱PLC的通訊與編程,附實際案例! 2024-12-02
- PLC信號輸入知識您必須了解!再學PLC會事半功倍 2024-12-02
- PLC編程變量太多,如何規劃地址便于記憶?? 2024-12-02
- PLC控制系統?在實際調試過程中常見的3個問題 2024-12-02
- PLC實例|運料小車控制系統編程方法,電氣工程師必看! 2024-12-02
- S7-1200plc作為從站的編程詳解. 2024-12-02
- S7-1200plc作為從站的編程詳解 2024-12-02
- 電氣原理圖與PLC程序轉化的8項實例,新手必收! 2024-12-02
- 老工程師不外傳的28條PLC編程規范及建議,一般人我不告訴他! 2024-12-02
- 實例分享 | MCGS 和西門子1200PLC通訊設置 2024-12-02
- 西門子S7-200 SMART 入門級項目案例詳解 2024-12-02
- S7-1200與S7-300/400之間的以太網通信 2024-12-02
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684