《電子技術應用》
您所在的位置:首頁 > 其他 > 设计应用 > 基于自由口模式的S7-200 PLC与上位机的通信
基于自由口模式的S7-200 PLC与上位机的通信
来源:微型机与应用2011年第13期
余中正1,武 玉1,夏永胜2,贡马林1
(1.中国科学院等离子体物理研究所,安徽 合肥 230001;2.合肥工业大学 机械与汽车工程学院,
摘要: 详细说明了西门子S7-200 PLC在自由口模式下与上位机通信的实现,主要包括该系统的硬件构成,自由口通信协议的标准,以及上位机软件流程和主控PLC软件设计。通过自由口通信可实现对ITER导体穿缆测力测长系统的监控, 将PLC数据传送至上位机,实现对数据的处理以及现场数据的实时显示和远程控制等功能。
Abstract:
Key words :

摘  要: 詳細說明了西門子S7-200 PLC自由口模式下與上位機通信的實現,主要包括該系統的硬件構成,自由口通信協議的標準,以及上位機軟件流程和主控PLC軟件設計。通過自由口通信可實現對ITER導體穿纜測力測長系統的監控, 將PLC數據傳送至上位機,實現對數據的處理以及現場數據的實時顯示和遠程控制等功能。
關鍵詞: PLC;通信協議;自由口模式;ITER導體穿纜測力測長系統;上位機

 西門子公司的SIMATIC S7-200系列PLC是廣泛適用于中小型設備控制的工業可編程控制器,以其可靠性高、豐富的指令和內置功能、通信能力強、性價比較高等特點,在工業控制領域中得到越來越廣泛的應用[1]。在本文的控制系統中,PLC作為下位機完成現場各種信號和數據的采集、運算和控制[2-4]。工控PC機作為上位機可提供人機交互界面,實現數據的處理以及現場數據的實時顯示等監視和遠程控制等功能。S7-200系列的PLC可以在四種通信模式下工作:PPI模式、MPI模式、PROFIBUS-DP模式和自由口通信模式。其中,PPI和MPI是西門子專門開發的通信協議。PPI協議用于點對點接口,是一個主/從協議。MPI協議適用于多點接口,可以是主/主協議或主/從協議。PROFIBUS-DP是西門子支持的現場總線網絡[5]。而大多數用戶則是選用對用戶完全開放的自由口通信模式。在自由口通信模式下,通信協議是由用戶定義的。用戶可以用梯形圖程序調用接收中斷、發送中斷、發送指令(XMT)、接收指令(RCV)來控制通信操作。本設計采用自由口方式,重點介紹工控PC機與主控PLC的通信原理與實現。
1 硬件組成
 ITER導體穿纜測力測長控制系統的框圖如圖1所示。將測力傳感器和測長編碼器通過信號線與PLC相連,這樣穿纜過程中的拉力數據和行程數據就能夠實時寫入PLC的寄存器中。PLC通過通信電纜與PC機的串行通信口相連,在PC機中設置VB的MSCOMM控件來實現串口通信,這樣PC機就能讀取PLC寄存器中的拉力和行程數據,對穿纜過程進行實時監控。

2 工控PC機與主控PLC的自由口通信協議
 工控PC機標準的串口為RS232C,S7-200系列提供的串口為RS485,利用西門子公司提供的PC/PPI電纜,可以方便地實現S7-200系列PLC與PC之間硬件連接[1]。
 上位機向PLC發送指令(即指令幀),指令幀格式如圖2所示,由起始字符、指令類型、目標PLC站地址、目標寄存器地址、讀/寫字節數、待寫入的數據(當從PLC讀數據時,具體數據部分為空)、校驗碼和結束字符組成。

 例如寫VB100開始的兩個字節的指令幀如下:83H,06H,08H,00H,00H,64H,30H,32H,31H,32H,33H,34H,35H,36H,115H。下面按順序說明每段字節的含義:
 83H為字符"S"的ASCII碼,表示指令的開始,在本設計中是固定的。
 06H表示指令的類型,為寫操作。在本文中定義05H代表讀操作,06H代表寫操作。
 08H,00H表示要寫PLC中V存儲區的內容。
 00H,64H表示要從VB100開始寫。
 30H,32H表示要寫兩個字節。
 31H,32H,33H,34H表示VB100寫入12H,VB101寫入34H。
 35H,36H是校驗和。
 115H為字符"s"的ASCII碼,是結束字符,表示指令的結束,在本設計中是固定的。
 一條指令除包含數據外,還包含必要的控制字(如起始字符、結束字符、指令類型等)。如果指令中的數據直接以其原本的形式傳輸,則不可避免地會與指令中的控制字發生混淆。為了避免這種情況的發生,可以用文本來傳送二進制數據。通過16進制ASCII碼的格式來描述數據,每個二進制的字節都可以表示成一對ASCII編碼,這對編碼表示這個字節的兩個16進制字符。這種格式可以表示任何的數值,僅僅使用ASCII代碼的30H~39H(表示0~9)和41H~46H(表示A~F)。ASCII碼的其余部分可以用作控制字。這樣就避免PLC因接收到數據中錯誤的標志位而停止接收的錯誤。
 在PLC接到上位機指令后,會向上位機發送一個反饋消息,即反饋幀,反饋幀格式如圖3所示。其組成與指令幀基本相同,但它是由PLC發出的,所以具體數據段不同,在向PLC寫數據時,反饋幀的具體數據部分為空,而在從PLC讀數據時,具體數據部分不能為空。


 例如,PLC接收到寫VB100開始兩個字節后的發送反饋幀如下:83H,02H,08H,00H,00H,64H,30H,32H,35H,36H,115H。下面按順序說明每段字節的含義:
 83H為字符"S"的ASCII碼,與指令幀相同。
 02H為狀態信息,表示接收到上位機指令后PLC的執行狀態。在本文中02H表示寫入正確,相應地規定01H表示讀取正確,03H表示BCC校驗碼錯誤,04H表示指令不合法。
 08H,00H表示要寫入PLC中V存儲區的內容,與指令幀相同。
 00H,64H表示要從VB100開始寫,與指令幀相同。
 30H,32H表示要寫兩個字節,與指令幀相同。需注意的是,此時具體數據段為空。
 35H,36H是校驗和,因無數據段,與指令幀可能不同。
 115H為字符"s"的ASCII碼,表示此幀結束,與指令幀相同。
3 工控PC機軟件設計
 工控PC機端通信程序流程圖如圖4所示。發送指令幀后,注意查詢反饋幀,如一定時間內沒有接收到,應再次發送,兩次無響應,則要提示通信故障或PLC不存在。

 在工控PC機中可采用VB來實現上位機監控程序,通過MSCOMM控件就可控制串口通信[6],主要參數設置代碼如下:
 MSComm1.Settings="9600,N,8,1"
 //串口通信參數設置
 MSComm1.CommPort=1
 MSComm1.PortOpen=True
    MSComm1.InputLen=0
4 主控PLC軟件設計
 CPU224XP自由口通信模式的初始化是通過對特殊存儲字節SMB30(PORT0)寫入通信控制字來設置通信的波特率、奇偶校驗、停止位和數據位數[7]。SMB30中的內容如下:
 PP:奇偶選擇。00為無奇偶校驗;01為偶校驗;10為奇校驗;11為保留。
 D:每個字符的數據位。0為每個字符8位;1為每個字符7位。
 BBB:自由端口波特率。本設計為010,表示波特率為9 600 b/s。
 MM:協議選擇。00為點到點接口協議的PPI從站模式;01為自由端口協議;10為PPI主站模式;11為保留。缺省設置為00,即PPI從站模式。
 本文中傳輸速率固定為9 600 b/s,數據格式由1位起始位、8位數據位、無校驗位、1位停止位組成。
配置自由口通信模式后,就可以進行數據的收發了。PLC通信程序框圖如圖5所示。接收數據指令RCV的命令格式為RCV TABLE,Port0,RCV指令可以接收一個或多個字符,一次最多接收255個字符。發送數據指令XMT的命令格式為XMT TABLE,Port0,激活發送緩沖區TABLE中的數據。數據緩沖區的第一個數據指明了要發送的字節數,最多有255個字符的緩沖區。

 通信程序的設計需遵循一定的規則,例如,中斷通信處理程序要短小精悍,要避免XMT與RCV指令在一個端口同時執行[8]。本設計采用主從方式通信,PC設為主機,PLC設置為從機。只有PLC接收到指令幀后,才可能根據接收數據情況發送反饋幀。為簡化程序設計,PC機只發出讀指令和寫指令兩種指令幀。若為讀指令,PLC準備好發送數據后執行XMT指令;若為寫指令,PLC先把數據寫入指定存儲區,準備好應答數據后同樣執行XMT命令;若接收到錯誤幀(如校驗錯誤及不能識別的命令),PLC準備相應標志數據執行XMT指令。
 主要代碼如下:
 LD  SM0.0
 MOVB  9,SMB30//設置端口0為:9 600,N,8,1
 LD  SM0.0//RCV指令初始化
 MOVB  16#EC,SMB87
 //允許接收信息,使用SMB88,SMB89。
 MOVB  83,SMB88//設置起始字符為"S"
 MOVB  115,SMB89//設置結束字符為"s"
 MOVB  +1000,SMW92//接收信息時間不能超過1 ms
 MOVB  30,SMB94//接收的最大字符數,這里設置為30
 R  SMB87.2,1//復位SMB87.2,使其為0,忽略SMW92
 LD  SM0.0
 ATCH  RCVOVER,23
 //將0口接收完成中斷事件連接到RCVOVER上
 LD  SM0.0
 ATCH  XMTOVER,9、
  //將0口發送完成中斷事件連接到XMTOVER上
 LD  SM0.0
 ENI//允許中斷
 S7-200自由口通信方式使用戶可以自己定義PLC指令通信協議,與任何公開通信協議(如RS-422或RS-232C)接口設備進行通信,使通信范圍大大增加,控制系統配制更加靈活。本通信程序用于ITER導體穿纜測力測長監控系統,PLC完成數據采集及現場控制,工控PC機實時顯示導體穿纜的速度及行程,同時以梯形圖和通信控件顯示動作過程,便于監控及故障診斷,得到用戶好評。本文設計的通信協議也可用于其他控制系統的監控。
參考文獻
[1] SIEMENS公司.SIMATIC S7-200可編程控制器系統手冊[M]. http://www2.ad.siemens.com.cn/download/Upload/AS/manual/1109582. pdf, 2008-08-01.
[2] 吉順平.西門子PLC與工業網絡技術[M].北京:機械工業出版社,2008.
[3] 劉杰,陽林,陳超麗.三菱FX2N系列PLC與PC通訊的簡易實現[J].制造業自動化,2006(1):65-67.
[4] 陳明意.基于VC6.0的PC與FX2NPLC通信的實現[J].武漢工業學院學報,2005,24(4):14-16.
[5] 丁莉君,李宏燕.自由口模下S7-200 PLC與上位機的通信[J].機床電器,2009(1):26-28.
[6] 湯光華,吳青.自由口模式下S7-200 PLC與上位機的通信[J].微計算機信息,2008(24):62-64.
[7] 劉紅兵.S7-200自由口通訊的實現及應用[J].PLC&FA,2009(2):58-62.
[8] 李紹民,潘登.S7-200 PLC與上位機的通信[J].大連民族學院學報,2009,11(3):209-211.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 久久久福利视频| 国产精品com| 久久国产精品久久久久久| 国产精品美女免费视频| 国产精品入口福利| 狠狠精品干练久久久无码中文字幕| 日韩中文字幕在线| 日韩中文字幕在线视频观看 | 国产suv精品一区二区| 91精品久久久久久久久久久| 97久久国产亚洲精品超碰热| 少妇av一区二区三区无码| 亚洲中文字幕久久精品无码喷水| 国产精品美女主播| 久久波多野结衣| 精品久久蜜桃| 国产区欧美区日韩区| 精品国产福利| 久久精品99久久| 久久99九九| 韩国v欧美v日本v亚洲| 日韩中文有码在线视频| 日本精品一区二区三区在线播放视频| 国产精品美女诱惑| 日本欧美国产在线| 欧美亚洲国产日韩2020| 国产精品自产拍高潮在线观看| 亚洲伊人久久综合| 国产日韩欧美中文| 亚洲午夜精品久久久久久人妖 | 高清国产一区| 国产精品1234| 午夜精品在线观看| 午夜精品一区二区在线观看| 久久人人爽亚洲精品天堂| 国产精品国产亚洲精品看不卡| 亚洲一区不卡在线| 国产一区二区色| 日韩在线视频观看正片免费网站| 欧美精品第三页| 国产精品亚洲精品|