時(shí)間:2018-01-30 11:11:59來源:網(wǎng)絡(luò)轉(zhuǎn)載
0引言
隨著計(jì)算機(jī)與通信技術(shù)的發(fā)展,PLC各種模塊的多樣化和信息化,由PLC作為基本控制單元的分布式控制系統(tǒng)在自動(dòng)化領(lǐng)域中廣泛應(yīng)用,迫切需要一種總線能適合遠(yuǎn)距離的數(shù)字通信。在RS422標(biāo)準(zhǔn)的基礎(chǔ)上,EIA研究出了一種支持多節(jié)點(diǎn)、遠(yuǎn)距離和接收高靈敏度的RS485總線標(biāo)準(zhǔn)。EIA曾經(jīng)在它所有標(biāo)準(zhǔn)前面加上RS前綴(英文RcommendeStandard的縮寫),因此許多工程師一直沿用這種名稱,因?yàn)镽S485的遠(yuǎn)距離(1200m)、多節(jié)點(diǎn)(32)以及傳輸線成本低的特性,使得EIA的RS485成為工業(yè)應(yīng)用數(shù)據(jù)傳輸?shù)氖走x標(biāo)準(zhǔn)。
我廠18條電動(dòng)執(zhí)行機(jī)構(gòu)調(diào)試線,分布在三個(gè)廠房的若干區(qū)域,每個(gè)調(diào)試線由一臺(tái)PLC與HMI控制,為了將調(diào)試數(shù)據(jù)歸口管理,并判斷調(diào)試結(jié)果的正確性,對(duì)調(diào)試線進(jìn)行監(jiān)控,18臺(tái)PLC通過RS485總線與計(jì)算機(jī)連接起來,構(gòu)成一個(gè)分布式監(jiān)控系統(tǒng),通過數(shù)據(jù)通信使計(jì)算機(jī)和PLC實(shí)現(xiàn)數(shù)據(jù)共享,完成對(duì)調(diào)試過程的集中管理和分散控制。計(jì)算機(jī)與PLC各個(gè)子站的的通信是系統(tǒng)的重要環(huán)節(jié),本文詳細(xì)論述了基于RS485總線,利用VB開發(fā)了上位機(jī)通信系統(tǒng),編寫了PLC自由口的通訊協(xié)議的設(shè)計(jì)與實(shí)際應(yīng)用方案。可以借鑒為各種上位機(jī)、PLC、HMI等通信系統(tǒng)設(shè)計(jì)的應(yīng)用范例,同時(shí)可作為檢測(cè)技術(shù)、自動(dòng)化設(shè)計(jì)等課程的工程項(xiàng)目訓(xùn)練與教學(xué)的平臺(tái)。
1RS485網(wǎng)絡(luò)構(gòu)成
RS485標(biāo)準(zhǔn)采用有平衡式發(fā)送,差分式接收的數(shù)據(jù)收發(fā)器來驅(qū)動(dòng)總線,與RS422一樣,可以將多個(gè)(最多為32個(gè))RS485接口互連,而其連接更簡(jiǎn)單,只需將各個(gè)接口的“+”端和“+”端相連、“-”端和“-”端相連,連接的兩根線就是RS485的“物理總線”。這些相互連接的RS485接口的物理地位完全平等,在邏輯上取一個(gè)為主導(dǎo)地位,其他為從屬地位。在通信時(shí),同樣采用主呼叫,從應(yīng)答的方式。
控制系統(tǒng)的硬件構(gòu)成如圖1所示,上位機(jī)為計(jì)算機(jī),下位機(jī)采用西門子公司S7-200系列PLC,各PLC通過通信口0直接掛在RS485總線上,上位機(jī)通過RS232/485轉(zhuǎn)換器與RS485總線相連,形成1:N通信方式??刂葡到y(tǒng)中,上位機(jī)的主要任務(wù)是獲取調(diào)試線上的數(shù)據(jù)信息,完成對(duì)調(diào)試過程的監(jiān)控。下位機(jī)的主要任務(wù)是對(duì)調(diào)試過程進(jìn)行自動(dòng)控制,將調(diào)試數(shù)據(jù)發(fā)送給上位機(jī),并按上位機(jī)命令執(zhí)行。
圖1網(wǎng)絡(luò)圖
2計(jì)算機(jī)與PLC的通信
上位機(jī)與PLC的通信實(shí)際上是計(jì)算機(jī)與PLC的通信模塊之間交換命令和響應(yīng),下位機(jī)具有初始傳送優(yōu)先權(quán),將所有調(diào)試數(shù)據(jù)發(fā)送給上位機(jī),上位機(jī)根據(jù)收到的數(shù)據(jù)判斷哪個(gè)調(diào)試線發(fā)出的數(shù)據(jù),對(duì)數(shù)據(jù)分析后響應(yīng)回傳數(shù)據(jù)與命令,下位機(jī)只接收發(fā)送給自己的數(shù)據(jù)。通信以“幀”為單位進(jìn)行,幀分為數(shù)據(jù)幀和響應(yīng)幀兩種。數(shù)據(jù)幀由PLC發(fā)送給上位機(jī);響應(yīng)幀為上位機(jī)接到數(shù)據(jù)幀后自動(dòng)向PLC發(fā)出的命令與判斷信號(hào)所有的指令碼、字符和數(shù)據(jù)均以十六進(jìn)制碼發(fā)送和接受。
S7-200系列PLC通信模式有兩種:一種是點(diǎn)對(duì)點(diǎn)(PPI)通信協(xié)議,用于PLC與其編程器或西門子公司的人機(jī)接口產(chǎn)品之間的通信;另一種是對(duì)用戶完全開放的自由口模式(freeportmode),由用戶自行規(guī)定通信的協(xié)議。PPI模式只能在PLC停止方式(STOP)下通信,而自由口模式只能在PLC運(yùn)行方式(Run)下通信,我們采用自由口通信方式在進(jìn)行通信之前,應(yīng)先對(duì)串口初始化。對(duì)S7-200PLC的初始化是通過設(shè)置特殊標(biāo)志位SMB30來實(shí)現(xiàn)的。
2.1PLC的發(fā)送指令
發(fā)送S7200系列PLC有專門的發(fā)送指令用于發(fā)送數(shù)據(jù),格式為:
XMTTABLEPORT
XMTTABLEPORTTABLE為發(fā)送數(shù)據(jù)的字節(jié)數(shù)即數(shù)據(jù)長(zhǎng)度,最大為255。而要發(fā)送的數(shù)據(jù)必須存儲(chǔ)在TABLE的后面。如TABLE的存儲(chǔ)區(qū)域?yàn)閂B600,要發(fā)送“MESSAGE”的數(shù)據(jù)存儲(chǔ)形式如圖2所示。PORT指定通信口,本項(xiàng)目設(shè)為0。當(dāng)正在發(fā)送數(shù)據(jù)時(shí),PLC特殊標(biāo)志位SM4.5為0;發(fā)送完后,SM4.5為1。因此可通過判斷SM4.5的狀態(tài)來進(jìn)行發(fā)送后處理。
圖2PLC發(fā)送信息
如果有一個(gè)中斷服務(wù)程序連接到發(fā)送結(jié)束事件上,在發(fā)送完緩沖區(qū)中的最后一個(gè)字符時(shí),則會(huì)產(chǎn)生一個(gè)中斷(對(duì)端口0為中斷事件9,對(duì)端口1為中斷事件26)。
2.2PLC接收指令
接收指令的格式為:RCVTABLEPORT
接收指令使您能夠接收一個(gè)字節(jié)或多個(gè)字節(jié)的緩沖區(qū),最多為255個(gè)。圖3給出了接收緩沖區(qū)的格式。如果有一個(gè)中斷服務(wù)程序連接到接收信息完成事件上,在接收完緩沖區(qū)中的最后一個(gè)字符時(shí),S7-200會(huì)產(chǎn)生一個(gè)中斷(對(duì)端口0為中斷事件23,對(duì)端口1為中斷事件24。)也可以不使用中斷,通過監(jiān)視SMB86(端口0)或者SMB186(端口1)來接收信息。當(dāng)接收指令未被激活或者已經(jīng)被中止時(shí),這一字節(jié)不為0;當(dāng)接收正在進(jìn)行時(shí),這一字節(jié)為0。
圖3接收信息
2.3特殊寄存器及相關(guān)的位
SMB30控制自由端口0的通訊方式,SMB130控制自由端口1的通訊方式。您可以對(duì)SMB30和SMB130進(jìn)行寫和讀。如表1所示,這些字節(jié)設(shè)置自由端口通訊的操作方式,并提供自由端口或者系統(tǒng)所支持的協(xié)議之間的選擇。
通信接收字符緩沖器SMB2:SMB2是一個(gè)暫態(tài)寄存器,用于存放在自由口通信方式下接收到的當(dāng)前字符,用戶在下一步應(yīng)從這里取走其中的內(nèi)容,通過編程控制將接收到的字符一個(gè)一個(gè)由SMB2移入接收緩沖區(qū)。
通信校驗(yàn)結(jié)果標(biāo)志位SMB3.0:PLC按SMB30規(guī)定的奇偶校驗(yàn)方式對(duì)所接收到的數(shù)據(jù)作校驗(yàn)。如果校驗(yàn)有錯(cuò),PLC自動(dòng)將SMB3.0置1,SM3.0=0表示奇偶校驗(yàn)正確。根據(jù)這個(gè)標(biāo)志,可決定對(duì)當(dāng)前信息的取舍,還可以在出錯(cuò)的情況下,將此錯(cuò)誤位發(fā)送給對(duì)方,以便要求它重發(fā)。
工作方式標(biāo)志位SM0.7:57-200系列PLC只有處于運(yùn)行(RUN)方式時(shí)才能進(jìn)行自由口模式通信,而在停止(ST6P)方式時(shí)只能以PPI模式通信。當(dāng)PLC處于RUN方式時(shí)SM0.7=1,否則SM0.7=0,因此可通過判斷SM0.7的狀態(tài)來打開或關(guān)閉自由口通信。
發(fā)送器空標(biāo)志SM4.5及收發(fā)指令:當(dāng)正發(fā)送數(shù)據(jù)信息時(shí),特殊存儲(chǔ)器位SM4.5=0,當(dāng)發(fā)送完成后,SM4.5=1,因此可通過判斷SM4.5的狀態(tài)來進(jìn)行發(fā)送后處理,也可直接用發(fā)送中斷來處理。
表1特殊存儲(chǔ)器字節(jié)SMB30
3上位機(jī)程序設(shè)計(jì)
在Windows環(huán)境下,實(shí)現(xiàn)上位機(jī)與PLC的數(shù)據(jù)通訊,有多種軟件開發(fā)平臺(tái)可以使用,VisualBasic編寫通信軟件十分方便,編程工作量小,可視化程度高,尤其是提供了通信控件MSComm,可方便地實(shí)現(xiàn)與多臺(tái)PLC間的通信。MSComm控件有很多重要屬性,其中最重要的幾個(gè)是:
(1)CommPort:設(shè)置并返回通信口號(hào);
(2)SetTIngs:以字符串的形式設(shè)置并返回波特率、校驗(yàn)方式、數(shù)據(jù)位和停止位;
(3)PortOpen:設(shè)置并返回通信端口的狀態(tài)(打開或關(guān)閉一個(gè)通信口);
(4)InBufferCount:返回接收緩沖區(qū)收到的字節(jié)數(shù);
(5)Input屬性:從接收緩沖區(qū)讀取數(shù)據(jù);
(6)Output屬性:向傳送緩沖區(qū)寫一個(gè)字符串。
計(jì)算機(jī)與PLC的通信過程流程圖如圖5所示,下面為計(jì)算機(jī)與5號(hào)站PLC的主要通信程序。
3.1初始化通信口
PrivateSubForm_Load0
MSComm1.CommPort=1//使用串行口1
MSComm1.SetTIngs=“9600,e,7,1”//9600波特率,偶校驗(yàn),7位數(shù)據(jù)位,1位停止位
MSComm1.InBufferCount=0//清除接收緩沖區(qū)
MSComm1.InputLen=0//輸入時(shí),讀取緩沖區(qū)的全部?jī)?nèi)容
MSComm1.PortOpen=True//打開通信口
3.2發(fā)送控制命令
PrivateSubSend_Click()
HD=“5”+“FF”+“WW”+“A”+“M0100”+“01”+Data//發(fā)給5號(hào)PLC站
Write=Chr(5)+HD+SumChk(HD)+Chr(13)+Chr(10)//形成控制命令字,其中DataW為要
//寫入的數(shù)據(jù),SumChk(RD)為和校驗(yàn)函數(shù)
MSComm1.Output=Write//向5號(hào)站PLC發(fā)送控制命令
Do
XY=MSComm1.Input//接收PLC響應(yīng)
RD_date=RD_date+XY
LoopUnTIlRight(RD_date,2)=Chr(13)&Chr(10)
Rd=Left(RD_date,5)//取應(yīng)答字符串的前5位
IfRd=Chr(6)+“02FF”Then
MsgBox“控制命令已接收”
Else
MsgBox“通信錯(cuò)誤”
EndIf
EndSub
3.3讀取調(diào)試線狀態(tài)信息
PrivateSubD_A()
RD=“05”+“FF”+“WR”+“A”+“DO0000”+“01”
Read=Chr(5)+RD+SumChk(RD)+Chr(13)+Chr(10)
MSComm1.Output=Read//發(fā)送讀5號(hào)站PLC數(shù)據(jù)命令
Do
ch=MSComm1.Input//接收PLC響應(yīng)
R_Answer=R_Answer+ch
LoopUnTIlRight(R_Answer,2)=Chr(13)&Chr(10)
RA=Left(R_Answer,5)//取PLC應(yīng)答字符串的前5位
IfRA=Chr(2)+“02FF”Then//判斷讀取是否正確
MSComm1.Output=Chr(6)+“02FF”//正確,向PLC發(fā)送
確認(rèn)信號(hào)DataR=Mid(R_Answer,6,4)//取出數(shù)據(jù)
DataR=Val(&H+DataR)//據(jù)轉(zhuǎn)換位十進(jìn)制數(shù)
Else
MsgBox“讀取數(shù)據(jù)錯(cuò)誤”
EndIf
EndSub
4PLC程序設(shè)計(jì)
PLC通過程序?qū)φ{(diào)試線的控制,產(chǎn)生的調(diào)試結(jié)果存放在以VB100為首的255個(gè)字節(jié)中,本文主要敘述的通訊,并也存在數(shù)據(jù)的翻譯過程,例如調(diào)試的力矩值放在VW200中,則要求將VB200乘以256再加VB201。若是浮點(diǎn)數(shù)的翻譯方式還了復(fù)雜些,在此就不一一敘述。主要是將一串調(diào)試數(shù)據(jù)發(fā)送給上位機(jī),并得到上位機(jī)的對(duì)試驗(yàn)結(jié)果的判斷與命令。下面結(jié)合通訊相關(guān)的PLC程序,對(duì)通訊進(jìn)行相應(yīng)的說明。
4.1主程序
LDI0.1//發(fā)送控制
EU
CALL發(fā)送:SBR1//將調(diào)試好的數(shù)據(jù)存儲(chǔ)在表中,準(zhǔn)備調(diào)用子程序發(fā)送
4.2接收子程序
SBR0:
LDSM0.0
MOVB9,SMB30//初始化端口0
MOVB16#F0,SMB87//初始化RCV信息控制字節(jié),RCV使能
//檢測(cè)信息結(jié)束字符,檢測(cè)空閑線信息條件
MOVB16#05,SMB88//只接收發(fā)給本站的數(shù)據(jù)(以5號(hào)站為例)
MOVB16#0A,SMB89//接收回車鍵,接收的結(jié)束數(shù)據(jù)
MOVB5,SMB90//設(shè)置空閑線超時(shí)為5ms
MOVB10,SMB94//設(shè)置最大字符數(shù)為10
ATCHINT_0:INT0,23//接收完成,執(zhí)行中斷0
ENI//啟用用戶中斷
RCVVB600,0//通過端口0,接收數(shù)據(jù),存儲(chǔ)在以VB600為首的字節(jié)中
4.3發(fā)送子程序
SBR1:
LDSM0.0
MOVB2#01101001,SMB30//初始化端口0,9600波特,7個(gè)數(shù)據(jù)位,偶校驗(yàn)
MOVB255,VB1000//發(fā)送的總數(shù)據(jù)位
ATCHINT_1:INT1,9//發(fā)送完成執(zhí)行中斷1
ENI//啟用用戶中斷
XMTVB100,0//通過端口0,發(fā)送數(shù)據(jù),發(fā)送以VB100為首的字節(jié)中
4.4中斷子程序
中斷子程序INT0:
LDSM0.0
MOVBVB602,QB0//響應(yīng)已接收到命令
中斷子程序INT1:
LDSM0.0
CALL接收:SBR0//使PLC處于接收狀態(tài)
5結(jié)束語
該系統(tǒng)經(jīng)實(shí)際運(yùn)行情況表明,采用RS-485總線構(gòu)建的分布式監(jiān)控系統(tǒng),硬件連接簡(jiǎn)單,編程快捷,可方便地實(shí)現(xiàn)計(jì)算機(jī)和多臺(tái)PLC間的聯(lián)網(wǎng)通信,與用現(xiàn)場(chǎng)總線模塊EM277構(gòu)建的Profibus-DP、以太網(wǎng)模塊EM243-I相比大大降低了成本,且不受只有8個(gè)站點(diǎn)可以使用PCAccess的限制,運(yùn)行一年多來實(shí)踐表明運(yùn)行穩(wěn)定可靠,能很好的滿足監(jiān)控系統(tǒng)的要求。
標(biāo)簽:
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>新品發(fā)布:CD300系列總線型伺服驅(qū)動(dòng)器
2024-10-31
2024-10-31
2024-10-31
新勢(shì)能 新期待|維智B1L直線伺服驅(qū)動(dòng)器
2024-10-31
纖薄之間,化繁為簡(jiǎn)|合信全新simple系...
2024-10-29
2024-10-18
推薦專題
更多>