周兆松
摘? 要:三菱公司生產制造的PLC因其具有較高的應用性、靈活性和接口功能等優勢特點,使其在我國工業控制等諸多領域中得到了普及。而為了能夠進一步提高PLC的應用效能,需要保證PLC與上位機之間具有較好的通信效果。為此,該文將以三菱PLC作為主要研究對象,重點圍繞其與上位機的串行通信進行簡要分析研究。
關鍵詞:三菱PLC;上位機;串行通信
中圖分類號:TP271? ? ? ? ? ? ? ? ? 文獻標志碼:A
0 引言
為了實現PLC與上位機的串行通信,可以在充分利用PLC對各項信息數據進行集中采集之后,根據實際操作需要直接利用上位機完成各項相關信息數據的傳輸、分析處理、清晰顯示等工作,并下達具體的控制命令,使工作人員可以與PLC之間形成高效的人機交互,實時完成監督管控工作。
1 系統硬件組成分析
該文所采用的PLC與上位機分別為三菱公司自主研發制造的FX系列PLC以及PC計算機。作為上位機的PC計算機將通過SC-09電纜連接三菱PLC這一下位機。在通信模式中則選擇使用自由端口模式,電纜的兩端分別與計算機串口和三菱PLC串行通信協議下的編程口相互連接。利用該通信模式使工作人員可以根據實際情況靈活讀寫PLC寄存器。
2 三菱PLC與上位機的串行通信協議
在三菱PLC與上位機串行通信的過程中,選擇使用的串行通信格式為RS-232。通過參考相關資料可知,在RS-232串行通信協議下,波特率為9 600 b/s,并采用偶校驗。上位機和PLC之間采用主從應答的方式,作為下位機的三菱PLC負責接收和響應由PC上位機傳輸而來的讀寫命令,上位機在對數據進行讀取時,PLC將直接接收經由通信接口從PC上位機中傳輸的數讀取命令,此時三菱PLC在對這一命令進行及時響應后將會立即向上位機反饋數據。同樣在通信接口的作用下,上位機將直接對所獲得的數據進行讀取。而在寫數據操作中,經由通信接口將上位機的寫數據命令傳輸至三菱PLC中后,如果PLC沒有對其進行正確響應,此時這一錯誤將及時由PLC進行返回。作為上位機的PC計算機在和三菱PLC進行串行通信傳輸的過程中,無論是數據傳輸還是接收,均以幀為單位。一般情況下,數據幀包括起止符STX與ETX、命令字與首地址、數據區與和校驗。其中從起始符末尾字節逐漸累加至結束符的總和為累加和,取其ASCII碼所得和的最低二位數。在對傳輸資料是否開始進行準確判斷時,主要采用對應著起始符的16進制數位0×02,下位機需要完成的數據讀取、寫數據等動作指令即為命令字。下位機在接收到PC計算機發送的讀元件指令時,其對應的命令碼即為"0"Chr(2),目標設備則為X、Y、M、S、T、C、D。而下位機在成功接收到從上位機傳輸而來的寫元件命令時,其目標設備與下位機讀元件命令操作中的目標設備完全一致,但對應的命令碼則為"1"Chr(3)。
3 三菱PLC與上位機的串行通信實例
3.1 三菱PLC配置
三菱PLC在與上位機進行串行通信時,首先需要根據實際情況合理設定通信格式。以采用D8120通信格式為例,其采用偶校驗、數據長度與停止位分別為7位和2位,同時將波特率設定為9 600 b/s。通過利用RS-232完成校驗碼的自動添加,使用不添加CR+LF的專用協議格式1,并將站號設定為0。在站點號的設定中,其設定范圍的起止點分別為00H與0FH,即設定范圍為0~15。
3.2 上位機程序流程
選用PC計算機作為上位機,選用三菱PLC作為下位機,在串行通信過程中,為有效提高通信傳輸速率,獲得更好的通信效果,該文以Windows為應用背景,選擇使用基于Visual Basic的專用通信控件,對三菱PLC和上位機的串行通信程序進行設計。在該文設計的上位機程序當中,當串口及通信參數完成初始化操作后,需要對三菱PLC與PC計算機之間是否進行通信予以精準判斷,如果二者不進行串行通信,將直接退出該流程并關閉串口。否則需要將串口打開,并對PC計算機是否需要向三菱PLC下達寫操作指令進行相應判斷。如果判斷PC計算機不需要下達寫操作指令,則需要自動開啟定時器,發送軟元件數據對命令幀進行準確讀取,此時在時間延遲下對上位機相關指令處理程序進行靈活調用即可退出流程并將串口關閉。如果判斷PC計算機需要向三菱PLC下達寫操作命令,此時需要發送軟元件數據寫入命令幀,在時間延遲下對上位機相關指令處理程序進行調用即可。利用基于Visual Basic的專用通信控件對上位機程序進行編寫,有助于簡化軟件編程。并且該文設定的三菱PLC與上位機的串行通信應用環境為Windows系統,該系統當中也運用了包括按鈕與文本框等在內的一系列控件,也在一定程度上為上位機程序的編寫提供了便利。值得注意的是,主程序在初始化的過程中,同時需要進行串口的初始化,在結合實際情況完成通信參數的設置并合理選擇相應的串行通信端口以外,其余各項關于串口的參數均采用默認值。
在該文設計的三菱PLC與PC計算機的串行通信程序中,將命令按鈕添加至通信窗口當中。操作人員點擊命令按鈕控件,將會直接觸發SendCmd_Click()事件,此時在這一事件中,不僅需要完成發送寫控制命令字的任務,還需要通過運用定時器控件Timer1當中的時間中斷事件Timer1_Timer()定時將對三菱PLC數據進行精準讀取的命令發送出去。而三菱PLC在接收到由上位機傳輸得到的數據讀取命令后,將會運用查詢方式對其進行及時響應。即對輸入緩沖區接收終止字符成功與否進行準確判斷,由此完成接收數據的相應處理操作。如果在三菱PLC當中將D8121設定為PLC站號,則此時對應的站號應為“00”,作為上位機的PC計算機需要將三菱PLC計算機站號被設定為“FF”。假設將讀取位狀態指令設定為“BR”,此時“0”代表著PC計算機告訴三菱PLC的響應請求時間,即上位機在將動作指令傳輸至三菱PLC后,后者將立即對其進行響應。此時起始元件的讀取號為“M139”,起始符末尾2位“01”即表示PLC只讀取一個元件數。
4 結語
該文通過對三菱PLC與上位機的串行通信進行分析可知,結合實際情況,在對PLC與上位機進行合理選用與配置的基礎上,靈活運用基于Visual Basic的專用通信控件,構成一個高效、完善的通信系統,能夠有效完成PLC與上位機之間的通信傳輸任務,獲得較高的傳輸速率與通信質量。有助于工作人員對現場控制器即PLC進行實時控制,在高效、簡潔的人機界面中完成相應監控操作。
參考文獻
[1]劉云.基于PC與PLC的測控系統通信設計與實現[J].電腦知識與技術,2017,13(24):208-209,211.
[2]張楓,張偉,鐘星.基于CC2530的環境監測系統與上位機間串行通信設計[J].福建電腦,2017,33(4):128-129.
[3]張寧.基于VB的上位機與PLC的通信及應用[J].科技與企業,2015(13):82.