技術頻道

      基于PLC自由口通信的應用

      摘 要:介紹了在Visual Basic 6.0環境下工控機與S7-200PLC自由口通信的實現方法,并結合水位實時檢測控制系統的開發實例,分析了Visual Basic 6.0與PLC通信的關鍵技術,該方法在幾乎不增加設備開支的情況下實現了上位機與PLC的通信和監控。

      關鍵詞:PLC;通信;VB6.0;上位機

      Application of Communication Based on PLC’s Freeport
      GAO Lihua QI Xiangdong JIAO Fenjiao

      Abstract:In this paper, the way of communication between industrial PC and S7-200 PLC is introduced. The key technology of the communication method is also analysed through an example of water-level real-time detection control system, the method realizes the communications and monitor between the upper computer and PLC without increase the equipment expense.

      Key words: PLC;communication;vb6.0;upper computer

      1 引言

        在工業控制中,作為工廠自動化的三大支柱之一的可編程控制器 PLC(Programmable Logic Controller),由于其安全可靠、功能齊全、應用靈活、操作維修容易和穩定可靠等特點而得到廣泛應用。但它無法實時顯示各種控制圖表,人機交互性差。為彌補這方面的不足,工業控制中一般與計算機組成控制系統,將PLC作為下位機使用。本文就此以 S7—200 PLC為例,通過 Visual Basic 6.0編程實現計算機作為上位機與 PLC的通信 ,完成工業流程和工藝參數的顯示以及控制參數的修改等功能。

      2 系統簡介

        本系統是一個水位實時檢測和控制系統,整個系統分成2級;PLC控制級和上位機監控級。首先,通過 PLC 將水位傳感器檢測到的水位模擬量送至上位機進行顯示;其次,上位機可發出起停泵、增減水位、手動自動切換等指令,并對上述指令信號動態采樣,在上位機顯示除了以上幾部分外,系統還具備參數修改和報警、實時趨勢顯示、實時和歷史數據報告等功能。

      3 系統硬件組成

        系統主要由工控機、PLC、水泵和電氣控制柜等組成。其中工控機作為上位機,通過RS-232接口與下位機相連,主要負責監控和管理功能;下位機選用SIEMENS公司的S7-200系列PLC,中央處理模塊采用S7-200系列CPU226,該CPU在本體中集成了2個RS-485通訊口,其性價比高,滿足本系統的所有要求,由于水位傳感器的模擬量信號,本系統還需要模擬量擴展模塊EM235。

      4 上位機與PLC通信

        4.1 PLC自由口通信方式

        工控機與 PLC通訊,工控機為 RS 232 串行接口,S7 - 200 為 RS 485 串行接口,他們之間不能直接相連使用,要實現 PLC 和 PC 之間的實時通訊,須進行電平轉換,這種轉換是通過帶隔離型的 RS 232/485 轉換器來實現的。工控機與PLC自由口通訊如圖1所示。


      圖1 工控機與PLC自由口通訊示意圖

        本控制系統中采用了自由口通信方式實現與工控機的控制。自由口通信方式是 S7 - 200 PLC的一個很有特色的功能,他可以使通信的范圍大大增加,使控制系統更加靈活、方便。通信協議完全由用戶程序控制,通過設置特殊寄存器 SMB30,SMB86,SMB87,SMB94 等的控制字來確定通訊參數,通過使用接收中斷、發送中斷、發送指令和接收指令對通信口操作,通信協議完全可以由梯形圖程序控制。本系統采用定時發送,通過中斷查詢的方式接收數據。PLC發送和接收的流程圖如圖2、圖3所示。


      圖2 發送程序流程圖


      圖3 接收程序流程圖

        4.2 MSComm控件

        VB 6.0 是一個可視化的窗口開發環境,微軟公司在VB 中提供了 MSComm 控件,該控件可以對串口狀態、通信協議、數據的接收和發送進行設置。MSComm 的工作方式有兩種,一是查詢方式,二是事件驅動方式。并且MSComm 控件屏蔽了通訊過程中的底層操作,可以方便地實現 PC與 PLC之間的串行通訊。

        MSComm 屬性很多,實現通訊只要在程序中設置好幾個重要的通訊屬性即可,屬性設置如表1。

        表1 Mscomm控件屬性

        4.3 接口編程

        在實施過程中,上位機與下位機之間要進行數據傳輸,本系統中,PLC要向上位機傳輸多個參數:1個水位傳感器壓力信號、2個報警信號及手動/自動狀態信號等,同時要求上位機向PLC傳送開關控制信號、壓力設定值信號及調節參數,并把手動/自動狀態命令送入PLC中,組成一個帶上位機的PLC智能控制系統。系統界面如圖4所示。這里應當注意的是,由于采用的通訊方式是半雙工的RS-485通訊,所以發送和接收指令不能同時使用。


      圖4 系統界面

        4.3.1 PLC部分程序

        初始化:

        NETWORK 1

        LD SM0.0 //首次掃描

        MOVB 16#05, SMB30 //初始化自由通信

        NETWORK 2

        MOVB 16#B0, SMB87 //初始化RCV信息控制字符

        MOVB 16#0A, SMB89 //設定信息結束字符

        MOVW +5, SMW90 //設置空閑線超時時間為5ms

        MOVB 100, SMB94 //設置最大字符數為100

        NETWORK 3

        ATCH INT_0:INT0, 23 //接收完成事件連接到中斷

        ATCH INT_2:INT2, 9 //發送完成事件連接到中斷

        ENI //中斷允許

        RCV VB100, 0 //端口指向接收緩沖區VB100

        中斷程序INT_0 //接收完成中斷

        LDB= SMB86, 16#20 //接收狀態顯示接收到結束字符

        MOVB 10, SMB34 //連接一個10ms的時基中斷,觸發發送

        收到的信息字符

        ATCH INT_1:INT1, 10

        CRETI

        NOT //接收未完成

        RCV VB100, 0 //啟動一個新的接收

        中斷程序INT_1 //定時中斷

        LD SM0.0

        DTCH 10 //斷開定時器中斷

        XMT VB100,0 //在端口0向用戶回送信息

        中斷程序INT_2 //發送完成中斷

        LD SM0.0

        RCV VB100, 0 //發送完成,允許另一個接收

        4.3.2 VB部分通信程序

        Private Sub MSComm1_OnComm()

        Static SCOMS As String

        Dim S1 As String

        If MSComm1.CommEvent = comEvReceive Then ‘如果接收到字符

        S1 = MSComm1.Input ‘把接收緩沖區內的數據賦值給臨時變量"S1"

        If (S1 = Chr(&H1B)) And (Len(SCOMS) > 3) Then ‘如果變量"S1"(接收緩沖區內的數據接收到起始字符‘&H1B‘,并且變量"SCOMS"中的字節數大于3),則

        SCOMS = ""

        Else

        If S1 <> Chr(&HD) Then ‘如果變量"S1"沒有接收到結束字符‘&H0D‘

        SCOMS = SCOMS & S1

        Else

        Call mySave(SCOMS)

        End If

        End If

        End If

        End Sub

      5 結束語

        在工業控制過程中,常常需要PLC與其他設備的通訊,若采用廠方提供的復雜的通訊方式,必然會使系統的擴展性、靈活性和性價比大打折扣,在中小規模控制系統中采用自由口通訊,可以有效地解決以上問題。

      參考文獻

        [1]范逸之.Visual Basic與RS-232串行通信控制.北京:清華大學出版社,2002.54-110. [2]王永華.現代電氣控制及PLC應用技術[M].北京:航空航天大學出版社,2003.

        [3]劉炳文. 精通Visual Basic6.0中文版[M].北京:電子工業出版社,1999.

        [4]SIEMENS SIMATIC S7-200可編程控制器系統手冊.

      文章版權歸西部工控xbgk所有,未經許可不得轉載。

      主站蜘蛛池模板: 综合无码一区二区三区四区五区| 激情无码亚洲一区二区三区| 亚洲A∨精品一区二区三区下载| 精品女同一区二区三区在线| 麻豆一区二区在我观看| 日韩精品一区二区三区不卡| 无码中文字幕乱码一区 | 国产不卡视频一区二区三区| 蜜桃传媒一区二区亚洲AV| 91精品福利一区二区三区野战| 国产a∨精品一区二区三区不卡| 久久国产精品免费一区二区三区| 国产一区二区三区在线观看免费 | 国产乱码伦精品一区二区三区麻豆 | 无码人妻精品一区二区蜜桃AV| 亚洲熟女综合一区二区三区| 色妞色视频一区二区三区四区| 久久99精品一区二区三区| 国产主播一区二区三区| 国产成人精品一区二区A片带套 | 亚洲国产一区二区视频网站| 一区二区三区观看| 亚洲高清成人一区二区三区| 亚洲人AV永久一区二区三区久久| 一区二区精品久久| 国产在线精品一区二区三区直播 | 精品日韩亚洲AV无码一区二区三区| 精品一区二区在线观看| 国产成人精品一区二区秒拍| 麻豆AV一区二区三区久久| 日韩一区二区视频| 国产一区二区不卡老阿姨| 国产伦精品一区二区三区精品| 国产成人一区二区三区电影网站| 日本视频一区二区三区| 亚洲一区二区三区在线视频| 国产精品伦一区二区三级视频| 精品无码人妻一区二区三区 | 国产激情精品一区二区三区| 国产福利视频一区二区| 精品永久久福利一区二区|