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