新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于自由口模式的S7-200 PLC與上位機的通信

        基于自由口模式的S7-200 PLC與上位機的通信

        作者: 時間:2011-11-08 來源:網絡 收藏

        西門子公司的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不存在。

        西門子plc相關文章:西門子plc視頻教程


        數字通信相關文章:數字通信原理


        通信相關文章:通信原理



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 聊城市| 贡山| 益阳市| 渑池县| 长垣县| 龙口市| 辽阳县| 吴旗县| 缙云县| 睢宁县| 甘南县| 安陆市| 台州市| 克什克腾旗| 抚宁县| 永寿县| 义马市| 抚远县| 吐鲁番市| 长治县| 五华县| 新昌县| 新密市| 榆树市| 若尔盖县| 邹城市| 内丘县| 资溪县| 云浮市| 图们市| 千阳县| 高清| 新巴尔虎左旗| 青冈县| 鄄城县| 汝南县| 黄石市| 鱼台县| 光山县| 鹤壁市| 龙泉市|