<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      產(chǎn)品分類(lèi)

      當(dāng)前位置: 首頁(yè) > 工業(yè)控制產(chǎn)品 > 自動(dòng)化控制 > PLC可編程控制器

      類(lèi)型分類(lèi):
      科普知識(shí)
      數(shù)據(jù)分類(lèi):
      PLC可編程控制器

      三菱FX系列plc與pc機(jī)通訊

      發(fā)布日期:2022-04-22 點(diǎn)擊率:36 品牌:三菱_Mitsubishi

      1 前言
      PLC以卓越的可靠性和方便的可編程性廣泛應(yīng)用于工業(yè)控制領(lǐng)域。實(shí)現(xiàn)PC機(jī)與PLC通信的目的是為了向用戶(hù)提供諸如工藝流程圖顯示、動(dòng)態(tài)數(shù)據(jù)畫(huà)面顯示、報(bào)表顯示、窗口技術(shù)等多種功能,為PLC提供良好的人機(jī)界面。本文詳細(xì)介紹了FX系列PLC的通信協(xié)議,并在Windows環(huán)境下,使用VB6.0開(kāi)發(fā)通信程序,實(shí)現(xiàn)了PC機(jī)與FX系列PLC之間的串行通信。
      2 PC機(jī)與PLC實(shí)現(xiàn)通信的條件
      帶異步通信適配器的PC機(jī)與PLC只有滿(mǎn)足如下條件,才能互聯(lián)通信:
      (1)帶有異步通信接口的PLC才能與帶異步通信適配器的PC機(jī)互聯(lián)。還要求雙方采用的總線(xiàn)標(biāo)準(zhǔn)一致,否則要通過(guò)“總線(xiàn)標(biāo)準(zhǔn)變換單元”變換之后才能互聯(lián)。
      (2)雙方的初始化,使波特率、數(shù)據(jù)位數(shù)、停止位數(shù)、奇偶校驗(yàn)都相同。
      (3)要對(duì)PLC的通信協(xié)議分析清楚,嚴(yán)格地按照協(xié)議的規(guī)定及幀格式編寫(xiě)PC機(jī)的通信程序。PLC中配有通信機(jī)制,一般不需用戶(hù)編程。
      3  PC機(jī)及與FX系列PLC的串行通訊
      3.1 硬件連接
      PC機(jī)與FX系列PLC不能直接連接,要經(jīng)過(guò)FX-232AW單元進(jìn)行RS232C/RS-422的變換,下圖表示了它們之間的連接關(guān)系:

      3.2 FX系列PLC的通信協(xié)議
      在PC機(jī)中必須依據(jù)互聯(lián)的PLC的通信協(xié)議來(lái)編寫(xiě)通信程序,因此先介紹FX系列PLC的通信協(xié)議。
      (1)數(shù)據(jù)格式
      FX系列PLC采用異步格式,由1位起始位、7位數(shù)據(jù)位、1位偶校驗(yàn)位及1位停止位組成,波特率為9600bps,字符為ASCII碼。格式如下:

      (2)通信命令
      FX系列PLC有4個(gè)通信命令,它們是讀命令、寫(xiě)命令、強(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ā)來(lái)的ENQ不理解時(shí),用NAK回答。
      (4)報(bào)文格式
      PC機(jī)向PLC發(fā)送的報(bào)文格式如下:

      其中STX為開(kāi)始標(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ù)段格式與含義如下:

      *寫(xiě)命令的數(shù)據(jù)段有數(shù)據(jù),讀命令的數(shù)據(jù)段則無(wú)數(shù)據(jù)。
      讀/寫(xiě)字節(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ì)寫(xiě)命令的應(yīng)答報(bào)文無(wú)數(shù)據(jù)段,而用ACK及NAK作為應(yīng)答內(nèi)容。
      (5)傳輸過(guò)程
      PC機(jī)與FX系列PLC之間采用應(yīng)答方式通信,傳輸出錯(cuò)則組織重發(fā)。其傳輸過(guò)程如下:

      PLC根據(jù)PC機(jī)的命令,在每個(gè)循環(huán)掃描結(jié)束處的END語(yǔ)句后組織自動(dòng)應(yīng)答,無(wú)需用戶(hù)在PLC一方編寫(xiě)程序。
      4 利用VB6.0編寫(xiě)通信程序
      下面以一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明編寫(xiě)通信程序的要點(diǎn)。假設(shè)PC機(jī)要求從PLC中讀入從D123開(kāi)始的4個(gè)字節(jié)的數(shù)據(jù)(D123,D124),其傳輸應(yīng)答過(guò)程及報(bào)文如下(圖略可向作者索取):
      命令報(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?jìng)€(gè)字節(jié),故應(yīng)答報(bào)文長(zhǎng)度為12個(gè)字節(jié)。
      根據(jù)PC機(jī)與FX系列PLC的傳輸應(yīng)答過(guò)程編制出如下所示的通信程序流程圖略。
      利用VB的MSComm控件,按照流程圖可以編寫(xiě)如下通信程序?qū)崿F(xiàn)PC機(jī)與FX系列PLC之間的串行通信以完成數(shù)據(jù)的讀取。MSComm控件可以采用輪詢(xún)或事件驅(qū)動(dòng)的方法從端口獲取數(shù)據(jù)。在這個(gè)例子中使用了輪詢(xún)方法。
      (1)通信口初始化
      Private Sub Initialize()
      MSComm1.CommPort = 1
      MSComm1.Settings = ″9600,E,7,1″
      MSComm1.InBufferSize = 1024
      MSComm1.OutBufferSize = 1024
      MSComm1.InputLen = 0
      MSComm1.InputMode = comInputModeText
      MSComm1.Handshaking = comNone
      MSComm1.PortOpen = True
      End Sub
      (2)請(qǐng)求通信與確認(rèn)
      Private Function MakeHandShaking() As Boolean
      Dim InPackage As String
      MSComm1.OutBufferCount = 0
      MSComm1.InBufferCount = 0
      MSComm1.Output = Chr(&H5)
      Do
      DoEvents
      Loop Until MSComm1.InBufferCount = 1
      InPackage = MSComm1.Input
      If InPackage = Chr(&H6) Then
      MakeHandShaking = True
      Else
      MakeHandShaking = FalseEnd If
      End Function
      (3)發(fā)送命令報(bào)文
      Private Sub SendFrame()
      Dim OutString As String
      MSComm1.OutBufferCount = 0
      MSComm1.InBufferCount = 0
      OutStrin = Chr(&H2)+″0″+″10F604″+Chr(&H3)+″74″
      MSComm1.Output = OutString
      End Sub
      (4)讀取應(yīng)答報(bào)文
      Private Sub ReceiveFrame()
      Dim InString As String
      Do
      DoEvents
      Loop Until MSComm1.InBufferCount = 12
      InString = MSComm1.Input
      End Sub
      5 結(jié)束語(yǔ)
      以本文所述機(jī)制編寫(xiě)的通信程序已成功用于以FX2N型PLC作為主控制器的高層建筑玻璃幕墻清洗機(jī)器人系統(tǒng)中,通過(guò)該通信程序,實(shí)現(xiàn)了PC機(jī)對(duì)PLC的監(jiān)視和控制。同時(shí),本程序?qū)Γ校脵C(jī)與其它型號(hào)PLC之間的通信也有一定的借鑒意義。 

       

      下一篇: PLC、DCS、FCS三大控

      上一篇: 索爾維全系列Solef?PV

      推薦產(chǎn)品

      更多
      主站蜘蛛池模板: 国产天堂一区二区综合| 国产成人综合亚洲亚洲国产第一页| 色综合色综合色综合色欲| 国产亚洲综合一区二区三区| 亚洲婷婷综合色高清在线| 99久久综合精品免费| 综合自拍亚洲综合图不卡区| 亚洲AV综合色区无码一二三区| 亚洲第一综合天堂另类专| 伊人久久大香线焦AV综合影院| 亚洲综合区图片小说区| 国产综合在线观看视频| 久久婷婷五月综合97色| 丁香亚洲综合五月天婷婷| 亚洲综合小说久久另类区| 国产AV综合影院| 亚洲免费综合色在线视频| 久久久综合九色合综国产精品| 国产色产综合色产在线视频| 色欲天天天综合网| 国产成人综合亚洲亚洲国产第一页 | 国产成人综合久久综合| 天天综合在线观看| 伊人久久综合热线大杳蕉下载| 国产福利电影一区二区三区久久久久成人精品综合 | 香蕉久久综合精品首页| 青青草原综合久久大伊人精品| 久久婷婷五月综合97色一本一本| 丁香伊人五月综合激激激| 狠狠综合视频精品播放| 色噜噜狠狠色综合欧洲selulu | 日韩字幕一中文在线综合| 国产成人精品综合网站| 久久综合丝袜长腿丝袜| 色综合合久久天天综合绕视看| 久久综合九九亚洲一区| 伊人丁香狠狠色综合久久| 亚洲精品综合久久中文字幕| 99久久国产综合精品五月天| 国产精品一区二区综合| 久久婷婷五月综合97色直播|