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