當(dāng)前位置:機(jī)電之家首頁 >> PLC技術(shù)>> plc應(yīng)用 >> 松下plc應(yīng)用 >> PC機(jī)與PLC串行通信的實(shí)現(xiàn)
PC機(jī)與PLC串行通信的實(shí)現(xiàn)

 前言

PLC以卓越的可靠性和方便的可編程性廣泛應(yīng)用于工業(yè)控制領(lǐng)域。實(shí)現(xiàn)PC機(jī)與PLC通信的目的是為了向用戶提供諸如工藝流程圖顯示、動(dòng)態(tài)數(shù)據(jù)畫面顯示、報(bào)表顯示、窗口技術(shù)等多種功能,為PLC提供良好的人機(jī)界面。本文詳細(xì)介紹了FX系列PLC的通信協(xié)議,并在bbbbbbs環(huán)境下,使用VB6.0開發(fā)通信程序,實(shí)現(xiàn)了PC機(jī)與FX系列PLC之間的串行通信。

 PC機(jī)與PLC實(shí)現(xiàn)通信的條件

帶異步通信適配器的PC機(jī)與PLC只有滿足如下條件,才能互聯(lián)通信:

(1)帶有異步通信接口的PLC才能與帶異步通信適配器的PC機(jī)互聯(lián)。還要求雙方采用的總線標(biāo)準(zhǔn)一致,否則要通過“總線標(biāo)準(zhǔn)變換單元”變換之后才能互聯(lián)。

(2)雙方的初始化,使波特率、數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗(yàn)都相同。

(3)要對(duì)PLC的通信協(xié)議分析清楚,嚴(yán)格地按照協(xié)議的規(guī)定及幀格式編寫PC機(jī)的通信程序。PLC中配有通信機(jī)制,一般不需用戶編程。

  PC機(jī)及與FX系列PLC的串行通訊

3.1 硬件連接

PC機(jī)與FX系列PLC不能直接連接,要經(jīng)過FX-232AW單元進(jìn)行RS232C/RS-422的變換,下圖表示了它們之間的連接關(guān)系:

3.2 FX系列PLC的通信協(xié)議

在PC機(jī)中必須依據(jù)互聯(lián)的PLC的通信協(xié)議來編寫通信程序,因此先介紹FX系列PLC的通信協(xié)議。

(1)數(shù)據(jù)格式

FX系列PLC采用異步格式,由1位起始位、7位數(shù)據(jù)位、1位偶校驗(yàn)位及1位停止位組成,波特率為9600bps,字符為ASCII碼。格式如下:

 

(2)通信命令

FX系列PLC有4個(gè)通信命令,它們是讀命令、寫命令、強(qiáng)制通命令、強(qiáng)制斷命令,如下表所示。表中X—輸入繼電器;Y—輸出繼電器;M—輔助繼電器;S—狀態(tài)元件;T—定時(shí)器;C—計(jì)數(shù)器;D—數(shù)據(jù)寄存器。

(3)通信控制字符

FX系列PLC采用面向字符的傳輸規(guī)程,用到5個(gè)通信控制字符,如下表所示。

*當(dāng)PLC對(duì)PC機(jī)發(fā)來的ENQ不理解時(shí),用NAK回答。

(4)報(bào)文格式

PC機(jī)向PLC發(fā)送的報(bào)文格式如下:

其中STX為開始標(biāo)志:02H;ETX為結(jié)束標(biāo)志:03H;CMD為命令的ASCII碼;SUMH,SUML為從CMD到ETX按字節(jié)求累加和,溢出不計(jì)。由于每字節(jié)十六進(jìn)制數(shù)變?yōu)閮勺止?jié)ASCII代碼,故校驗(yàn)和為SUMH與SUML。

數(shù)據(jù)段格式與含義如下:

*寫命令的數(shù)據(jù)段有數(shù)據(jù),讀命令的數(shù)據(jù)段則無數(shù)據(jù)。

讀/寫字節(jié)數(shù)為01H~40H(1~64)個(gè)。

PLC向PC機(jī)發(fā)送的應(yīng)答報(bào)文格式如下:

*對(duì)讀命令的應(yīng)答報(bào)文數(shù)據(jù)段為要讀取的數(shù)據(jù),一個(gè)數(shù)據(jù)占兩個(gè)字節(jié),分上位下位:

對(duì)寫命令的應(yīng)答報(bào)文無數(shù)據(jù)段,而用ACK及NAK作為應(yīng)答內(nèi)容。

(5)傳輸過程

PC機(jī)與FX系列PLC之間采用應(yīng)答方式通信,傳輸出錯(cuò)則組織重發(fā)。其傳輸過程如下:

PLC根據(jù)PC機(jī)的命令,在每個(gè)循環(huán)掃描結(jié)束處的END語句后組織自動(dòng)應(yīng)答,無需用戶在PLC一方編寫程序。

 利用VB6.0編寫通信程序

下面以一個(gè)簡單的例子來說明編寫通信程序的要點(diǎn)。假設(shè)PC機(jī)要求從PLC中讀入從D123開始的4個(gè)字節(jié)的數(shù)據(jù)(D123,D124),其傳輸應(yīng)答過程及報(bào)文如下(圖略可向作者索?。?/span>

命令報(bào)文中10F6H為D123的地址,04H表示要讀入4個(gè)字節(jié)的數(shù)據(jù)。校驗(yàn)和SUM=30H+31H+30H+46H+36H+30H+34H+

03H=174H,溢出部分不計(jì),故SUMH為'7',SUML為‘4’,相應(yīng)的ASCII碼為“37H”,“34H”。應(yīng)答報(bào)文中4個(gè)字節(jié)的十六進(jìn)制數(shù),其相應(yīng)的ASCII碼為8個(gè)字節(jié),故應(yīng)答報(bào)文長度為12個(gè)字節(jié)。

根據(jù)PC機(jī)與FX系列PLC的傳輸應(yīng)答過程編制出如下所示的通信程序流程圖略。

利用VB的MSComm控件,按照流程圖可以編寫如下通信程序?qū)崿F(xiàn)PC機(jī)與FX系列PLC之間的串行通信以完成數(shù)據(jù)的讀取。MSComm控件可以采用輪詢或事件驅(qū)動(dòng)的方法從端口獲取數(shù)據(jù)。在這個(gè)例子中使用了輪詢方法。

(1)通信口初始化

Private Sub Initialize()

MSComm1.CommPort  

MSComm1.Settings  ″9600,,,1″

MSComm1.InBufferSize  1024

MSComm1.OutBufferSize  1024

MSComm1.bbbbbLen  

MSComm1.bbbbbMode  combbbbbModeText

MSComm1.Handshaking  comNone

MSComm1.PortOpen  True

End Sub

(2)請求通信與確認(rèn)

Private Function MakeHandShaking() As Boolean

Dim InPackage As bbbbbb

MSComm1.OutBufferCount  

MSComm1.InBufferCount  

MSComm1.Output  Chr(&H5)

Do

DoEvents

Loop Until MSComm1.InBufferCount  

InPackage  MSComm1.bbbbb

If InPackage  Chr(&H6Then

MakeHandShaking  True

Else

MakeHandShaking  FalseEnd If

End Function

(3)發(fā)送命令報(bào)文

Private Sub SendFrame()

Dim Outbbbbbb As bbbbbb

MSComm1.OutBufferCount  

MSComm1.InBufferCount  

OutStrin  Chr(&H2)+″0″+″10F604″+Chr(&H3)+″74″

MSComm1.Output  Outbbbbbb

End Sub

(4)讀取應(yīng)答報(bào)文

Private Sub ReceiveFrame()

Dim Inbbbbbb As bbbbbb

Do

DoEvents

Loop Until MSComm1.InBufferCount  12

Inbbbbbb  MSComm1.bbbbb

End Sub

 結(jié)束語

以本文所述機(jī)制編寫的通信程序已成功用于以FX2N型PLC作為主控制器的高層建筑玻璃幕墻清洗機(jī)器人系統(tǒng)中,通過該通信程序,實(shí)現(xiàn)了PC機(jī)對(duì)PLC的監(jiān)視和控制。同時(shí),本程序?qū)Γ校脵C(jī)與其它型號(hào)PLC之間的通信也有一定的借鑒意義。

作者:未知 點(diǎn)擊:851次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:PC機(jī)與PLC串行通信的實(shí)現(xiàn)
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請《PC機(jī)與PLC串行通信的實(shí)現(xiàn)》相關(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個(gè)人求購

楊異乾 【求購】  電涌保護(hù)器  2025-11-28
趙焱 【求購】  電氣溫控閥  2025-11-28
張揚(yáng)瓊 【求購】  ABB火檢...  2025-11-27
張雪根 【求購】  固體除垢劑  2025-11-26
趙經(jīng)理 【求購】  變壓器  2025-11-26
羅經(jīng)理 【求購】  巡邏車跟蹤...  2025-11-26
趙經(jīng)理 【求購】  柴油發(fā)電機(jī)  2025-11-26
沈雙 【求購】  柴油過濾紙  2025-11-26
VIP公司推薦