當前位置:機電之家首頁 >> PLC技術(shù)>> PLC基礎(chǔ) >> PLC通信 >> pc與三菱fx系列plc通信的實現(xiàn)
pc與三菱fx系列plc通信的實現(xiàn)

1.硬件連接

一臺pc機可與一臺或最多16臺三菱fx系列通信,pc與plc之間不能直接連接。如圖1a、b為點對點結(jié)構(gòu)的連接,圖a中是通過fx-232aw單元進行rs-232c/rs-422轉(zhuǎn)換與plc編程口連接,圖b中通過在plc內(nèi)部安裝的通信功能擴展板fx-232-bd與pc連接;如圖1c所示為多點結(jié)構(gòu)的連接,fx-485-bd為安裝在plc內(nèi)部的通信功能擴展板,fx-485pc-if為rs-232c和rs-485的轉(zhuǎn)換接口。除此之外當然還可以通過其它通信模塊進行連接,不再一一贅述。下面以pc與plc之間點對點通信為例。

圖1 pc與fx的硬件連接圖

2.三菱fx系列plc通信協(xié)議

pc中必須依據(jù)所連接plc的通信規(guī)程來編寫通信協(xié)議,所以我們先要熟悉fx系列plc的通信協(xié)議。

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

三菱 fx系列plc采用異步格式,由1位起始位、7位數(shù)據(jù)位、1位偶校驗位及1位停止位組成,比特率為9600 bps,字符為ascⅱ碼。數(shù)據(jù)格式如圖2所示。

圖2數(shù)據(jù)格式

2)通信命令

三菱fx系列plc有4條通信命令,分別是讀命令、寫命令、強制通命令、強制斷命令,如表1所示。

表1 fx系列plc的通信命令表

3)通信控制字符

fx系列plc采用面向字符的傳輸規(guī)程,用到5個通信控制字符,如表2所示。

表2 fx系列plc通信控制字符表

控制字符ascⅱ碼功能說明
enq05hpc發(fā)出請求
ack06hplc對enq的確認回答
nak15hplc對enq的否認回答
stx02h信息幀開始標志
etx03h信息幀結(jié)束標志

注:當plc對計算機發(fā)來的enq不理解時,用nak回答。

4)報文格式

計算機向plc發(fā)送的報文格式如下:

stxcmd數(shù)據(jù)段etxsumhsuml
其中,stx為開始標志:02h;etx為結(jié)束標志:03h;cmd為命令的ascⅱ碼;sumh、suml為按字節(jié)求累加和,溢出不計。由于每字節(jié)十六進制數(shù)變?yōu)閮勺止?jié)的ascⅱ碼,故校驗和為sumh與suml。

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

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

plc向pc發(fā)的應(yīng)答報文格式如下:

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

數(shù)據(jù)段:

對寫命令的應(yīng)答報文無數(shù)據(jù)段,而用ack及nak作應(yīng)答內(nèi)容。

5)傳輸規(guī)程

pc與fx系列plc間采用應(yīng)答方式通信,傳輸出錯,則組織重發(fā)。其傳輸過程

如圖3所示。

圖3傳輸過程

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

3.pc通信程序的編寫

編寫pc的通信程序可采用編寫,或采用各種高級語言編寫,或采用組態(tài)軟件,或直接采用plc廠家的通信軟件(如三菱的melse medoc等)

下面利用vb6.0以一個簡單的例子來說明編寫通信程序的要點。假設(shè)pc要求從plc中讀入從d123開始的4個字節(jié)的數(shù)據(jù)(d123、d124),其傳輸應(yīng)答過程及報文如圖4所示。

圖4傳輸應(yīng)答過程及命令報文

命令報文中10f6h為d123的地址,04h表示要讀入4個字節(jié)的數(shù)據(jù)。校驗和sum=30h+31h+30h+46h+36h+30h+34h+03 h=174h,溢出部分不計,故sumh=7,suail=4,相應(yīng)的ascⅱ碼為“37h”,“34h”。應(yīng)答報文中4個字節(jié)的十六進制數(shù),其相應(yīng)的ascⅱ碼為8個字節(jié),故應(yīng)答報文長度為12個字節(jié)。

根據(jù)pc與fx系列plc的傳輸應(yīng)答過程,利用vb的mscomm控件可以編寫如下通信程序?qū)崿F(xiàn)pc與fx系列plc之間的串行通信,以完成數(shù)據(jù)的讀取。mscomm控件可以采用輪詢或事件驅(qū)動的方法從端口獲取數(shù)據(jù)。在這個例子中使用了輪詢方法。

1)通信口初始化

private sub initialize()

mscomm1.commport =1

mscomm1.settings = “9600,e,7,1”

mscomm1.inbuffersize = 1024

mscomml.outbuffersize = 1024

mscomm1.bbbbblen = 0

mscomml.bbbbbmode = combbbbbtext

mscomm1.handshaking = comnone

mscomm1.portopen = true

end sub

2)請求通信與確認

private function makehandshaking()as boolean

dim inpackage as bbbbbb

mscomml.outbuffercount = 0

mscomml.inbuffercount = 0

mscomml.output = chr(&h5)

do

doevents

loop until mscomml.inbuffercount = 1

inpackage = mscomml.bbbbb

if inpackage = chr(&h6)then

makehandshaking = true

else

makehandshaking = false

end if

end function

3)發(fā)送命令報文

private sub sendframe ()

dim outbbbbbb as bbbbbb

mscomml.outbuffercount = 0

mscomml.inbuffercount = 0

outstrin = chr(&h2)+″on″+″10f604″+chr(&h3)+″74″

mscomml.output = outbbbbbb

end sub

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

private sub receiveframe()

dim inbbbbbb as bbbbbb

do

doevents

loop until mscomml.inbuffercount = 12

inbbbbbb = mscomml.inpult

end sub

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

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

相先生 【求購】  潤滑油  2025-12-8
 【求購】  94 BF...  2025-12-8
李女士 【求購】   Etan...  2025-12-8
 【求購】  DG4V-...  2025-12-8
 【求購】  立式加工中...  2025-12-8
吳小姐 【求購】  粉碎機  2025-12-5
 【求購】  冶煉用的重...  2025-12-5
柳女士 【求購】  斷路器  2025-12-5
VIP公司推薦