欧美极品jizzhd欧美,91精品久久一区二区三区,欧美乱妇无乱码大黄a片,欧美日韩国产一区在线看

PLC技術資料
    FX系列可編程控制器與計算機通信的實現(xiàn)
    發(fā)布者:用戶投稿  發(fā)布時間:2008/4/25 14:04:19

    1  引言

        可編程控制器PLC是以微處理器為核心,綜合計算機技術、自動控制技術和通信技術發(fā)展起來的一種通用工業(yè)自動控制裝置,它具有可靠性高、體積小、功能強、程序設計簡單、靈活通用、維護方便以及抗干擾能力強等優(yōu)點,因而廣泛應用于電力、冶金、能源、化工、交通等領域,但是大多數(shù)中小型PLC的顯示功能較差,人機交互操作不便,管理人員不能及時了解現(xiàn)場情況,尤其是在現(xiàn)場調試中,為彌補PLC在這些方面的不足,在實際控制系統(tǒng)中,通常采用PLC作為下位機實現(xiàn)對生產(chǎn)過程的控制,以計算機作為上位機實現(xiàn)工藝流程參數(shù)顯示、控制參數(shù)設置等功能,使PLC和計算機相互結合,充分發(fā)揮PLC在開關量、模擬量控制和計算機在管理、監(jiān)控等方面的優(yōu)勢,以實現(xiàn)優(yōu)勢互補,極大提高控制系統(tǒng)的性價比。
    實現(xiàn)計算機和PLC控制系統(tǒng)的關鍵是兩者之間的通信,一般情況下,用戶可以采用現(xiàn)有的組態(tài)軟件實現(xiàn)監(jiān)控,但該方法成本較高,為此本文介紹了在Visual Basic 6.0的環(huán)境下,實現(xiàn)計算機與三菱FX系列PLC的串行通信方法。

    2  PLC與計算機的通信端口連接

        FX系列PLC的編程接口采用RS-422標準,而計算機的串行口采用RS-232C標準,因此采用接口模塊FX-232AW將RS-422標準轉換為RS-232C標準。如圖1所示,計算機、PLC與FX-232AW之間采用反饋與交叉相結合的連接圖。


    圖1  FX-232AW接口引線連接圖


    ?引腳2、3:將引腳2、3交叉互連,使PLC與上位機之間能發(fā)送和接收數(shù)據(jù)。
    ?引腳4、5:將引腳4、5反饋短接,對計算機發(fā)送數(shù)據(jù)來說,PLC總是處于數(shù)據(jù)準備就緒狀態(tài),計算機在任何時候都可以將數(shù)據(jù)送到PLC中。
    ?引腳6、20:將引腳6、20交叉互連,對計算機來說就必須檢測PLC是否處于準備就緒狀態(tài),即檢測引腳6是否為高電平。當引腳6為高電平時,表示PLC準備就緒,可以接收數(shù)據(jù),這時計算機就可以向PLC發(fā)送數(shù)據(jù)了;反之,當引腳6為低電平時,PLC與計算機則不能通信。

    3  計算機與PLC之間的通信協(xié)議

        FX系列PLC與計算機的通信模式有兩種:
    ? PLC與計算機采用專有協(xié)議(dedicated protocol)通信,這種方式無須編寫梯形圖,計算機直接讀寫PLC;
    ?PLC與計算機無協(xié)議通信,這種方式需要編寫梯形圖,并使用串行數(shù)據(jù)傳送指令RS。這里介紹專有通信協(xié)議。
    FX系列PLC與計算機專有通信協(xié)議提供有數(shù)據(jù)讀取、控制命令寫入、控制PLC啟/停和網(wǎng)絡測試等功能,該協(xié)議有兩種格式:format1和format4。兩種協(xié)議的區(qū)別在于字符串中是否添加CR/LF碼,采用哪種格式的協(xié)議由PLC中的特殊數(shù)據(jù)寄存器D8120決定,計算機向PLC傳送的字符串格式如圖2所示,在該字符串中,可由D8120來決定是否添加和校驗碼,此外format4需要在字符串末尾添加CR/LF。計算機與FX系列PLC之間采用主從應答通信方式,PLC內部不需要額外的通信程序,只要將所需數(shù)據(jù)放在數(shù)據(jù)寄存器中即可。每個數(shù)據(jù)寄存器都有相應的物理通信地址,通信時計算機直接對物理通信地址進行操作。


    圖2  字符串格式


    控制代碼(Control Code)主要用來控制每步數(shù)據(jù)的傳送。以format 1為例,當要對PLC進行讀操作時,計算機發(fā)出請求報文,該報文以ENQ碼開頭,并包括了報文中的所有字段,其中有字符域A。PLC對計算機的請求作出響應,以STX碼開頭,以ETX碼結尾,該報文不包括操作指令字段和消息等待時間。當計算機收到PLC發(fā)出的響應報文,計算機發(fā)出確認報文或未確認報文,該報文只包括有控制代碼、站號、PC號和錯誤碼Error Code,如圖3所示。


    圖3  計算機從PLC讀操作報文協(xié)議

    [NextPage]
    計算機與PLC間通過報文來交換信息,這些信息在交換過程中需要遵守一些約定。當要對PLC進行寫操作時,計算機同樣發(fā)出請求報文,該報文以ENQ碼開頭,包括了報文中的所有字符字段,其中有字符區(qū)域C,PLC對計算機的請求作出響應,返回確認報文或未確認報文,如圖4所示:


    圖4  計算機向PLC寫操作報文協(xié)議


    站號(Station NO.)用來決定計算機訪問哪一臺PLC,在FX系列PLC中,站號范圍從00H到0FH,特殊輔助寄存器D8121可用于設置站號。
    PC號(PC NO.)用來識別PLC上的CPU,對于FX系列PLC,該值為FFH。
    指令(Command)用來指定要進行的讀寫操作,每個命令字都由兩個ASCII碼表示。
    消息等待時間(Message Wait)指從計算機發(fā)出指令到成為接收狀態(tài)所需的時間,以10ms為一單位,等待時間可達150ms,可通過一個0到F間的ASCII碼來設定。消息等待時間主要用于半雙工通信模式下讀寫操作間的切換。
    字符區(qū)域(Character)A為計算機要讀取的存儲區(qū)的開始位置和字節(jié)數(shù)。B為PLC返回的要讀取的存儲區(qū)的數(shù)值。C為計算機要寫入的存儲區(qū)的開始位置和數(shù)值。
    和校驗碼(Sum Check Code)是從站號開始、和校驗之前所有字節(jié)按位相加后取和的低兩位數(shù)的ASCII碼,和校驗碼主要用于校驗數(shù)據(jù)傳送過程中是否發(fā)生位錯誤。

    4  計算機與PLC通信程序設計

        在Windows操作系統(tǒng)中實現(xiàn)串行通信主要有三種途徑:
    ?利用一些編程工具如Delphi提供的通信控件SPComm,Visual Basic或Visual C++提供的特定通信控件MSComm,開發(fā)者通過對這些控件編程來實現(xiàn)對串口的操作。
    ?調用Windows提供的API函數(shù)在Win32環(huán)境下,硬件設備被當作文件系統(tǒng)來訪問,應用程序調用Create File()函數(shù)來讀寫數(shù)據(jù)。
    ?通過C/C++語言將自己的程序編譯鏈接為DLL,然后用Visual Basic調用DLL里的函數(shù)來通信。這里介紹VB中通過MSComm控件實現(xiàn)串行通信的方法。
    由于Visual Basic 6.0是Windows環(huán)境下簡單高效的可視化編程語言開發(fā)系統(tǒng),以其所見及所得的可視化界面設計風格和面向對象程序設計等特點,已廣泛應用于各個領域,改編程語言不但提供了良好的界面設計能力,而且在計算機串口通信方面也有很強的功能,VB中的通信控件MSComm具有完善的串行數(shù)據(jù)收發(fā)和接收功能,不但包括有全部Windows API中關于串行通信的函數(shù)所具有的功能,還提供了更多的對象屬性來滿足不同用戶的編程需要。
    MSComm控件提供了兩種處理通信的方法:
    ? 事件驅動法:當有數(shù)據(jù)到達端口,端口狀態(tài)發(fā)生改變或有通信錯誤發(fā)生時,觸發(fā)MSComm控件的OnComm事件,事件驅動實時性強,對外界情況可以作出快速響應,因而是處理串行端口交互作用的一種非常有效的方法。
    ?查詢法:用軟件或在程序中設置定時器實現(xiàn)對端口周期性掃描,通過讀取CommEvent屬性值來查詢通信事件和錯誤,并作出相應處理,查詢法編程簡單,調試方便,如果應用程序較小,并且是自保持的,這種方法是可取的。
    由于MSComm控件隱藏了調用過程,屏蔽了通信過程中的底層操作,使用該控件只需定義相應的屬性,調用Send方法發(fā)送數(shù)據(jù)或等待處理相應的事件接收數(shù)據(jù),就可以輕松實現(xiàn)串行異步通信。MSComm控件支持如下主要屬性和事件。
    CommPort屬性:設置(返回)控件對應的端口號,系統(tǒng)用端口號唯一標識每一個串行端口。
    Settings屬性:設置(返回)控件所用的傳輸協(xié)議,以字符串的形式定義控件使用的波特率、奇偶校驗、數(shù)據(jù)位、停止位等參數(shù)。此設定應與PLC的設定相一致。
    PortOpen屬性:打開或關閉通信端口。
    Input屬性:從接收緩沖區(qū)接收并保存MSComm控件接收到的數(shù)據(jù)。
    Output屬性:向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù)。
    InputLen屬性:設置從接收緩沖區(qū)讀取的字符數(shù)。
    InbufferCout屬性:返回接收到數(shù)據(jù)緩沖區(qū)中需要處理的數(shù)據(jù)長度。在查詢方式中,該屬性可用來判斷輸入緩沖區(qū)是否接收到所需的字符。
    InputMode屬性:設置(返回)Input屬性傳輸?shù)臄?shù)據(jù)類型。
    OnComm事件:MSComm控件產(chǎn)生動作(如接收數(shù)據(jù))或錯誤時,觸發(fā)該事件。
    CommEvent屬性:返回最近的通信事件或錯誤,可在OnComm事件中檢測該屬性的值后處理。
    這里給出計算機與PLC采用查詢法通信的部分程序。

    [NextPage]
    ’MSComm控件初始化
    Private Sub Form_Load()
    STX$=Chr$(2)
    ETX$=Chr$(3)
    ENQ$=Chr$(5)
    NAK$=Chr$(&H15)
    ACK$=Chr$(6)
    MSComm1.Settings=”9600,e,7,1”
    MSComm1.InBufferSize=1024
    MSComm1.CommPort=1
    MSComm1.OutBufferSize=1024
    MSComm1.OutBufferCount=0
    MSComm1.PortOpen=True
    MSComm1.InputLen=0
    End Sub
    ’計算機與PLC的連結程序
    Private Sub Command_Click()
    Dim WaitTime As Long
    Dim StartTime As Long
    MSComm1.Output=Chr(5)
    WaitTime=5
    StartTime=Timer
    Do While Timer<StartTime+WaitTime
        DoEvents
    Loop
    If MSComm1.InBufferCount>0 Then
        If Asc(MSComm1.Input)=0 Then
    MsgBox(“連結成功,準備發(fā)送數(shù)據(jù)”)
        Else
      MsgBox(“連結失敗”)
        End If
    Else
       MsgBox(“連結失敗”)
    End If
    End Sub
    ’計算機從PLC讀函數(shù)程序
    Function CmdRead(Rd As String) As String
    Dim X As Integer
    Dim Y As Integer
    Dim Z As Integer
    MSComm1.InBufferCount=0
    Read$=Chr(5)&Rd&CheckSum(Rd)   
    ’讀數(shù)據(jù)幀由ENQ、命令串和和校驗碼組成
    MSComm1.Output=Read$
    Do
        DoEvents
    Loop Until MSComm1.InBufferCount>=9
    Data$=MSComm1.Input
    X=Val(Asc(Left(Data$,1)))
    Y=CheckSum(Mid(Data$,2,Len(data$)-3))   
    ’計算應答幀的和校驗碼
    Z=Mid(Data$,Len(Data$)-1,2)   
    ’計算接收到的應答幀的和校驗碼
    If X=2 And Y=Z then   
    ’STX的ASCII碼為02H
        CmdRead=Mid(Data$,6,Len(Data$)-8)
        MSComm1.Output=ACK$
    Else
    CmdRead=‘Error’
        MSComm1.Output=NAK$
    End If
    End Function
    計算機向PLC寫函數(shù)程序與讀函數(shù)程序類似。

    5  結束語

        文中給出了利用VB的MSComm控件實現(xiàn)計算機與PLC實時通信的基本思想和設計方法,該程序簡單、可靠、實用,并可根據(jù)實際工礦要求靈活修改程序,F(xiàn)在火電廠輸煤程控系統(tǒng)的電除塵設備中,有些系采用該系列的PLC,可采用上述方法來保證控制系統(tǒng)通信穩(wěn)定、有效。

    版權聲明PLC信息網(wǎng)轉載作品均注明出處,本網(wǎng)未注明出處和轉載的,是出于傳遞更多信息之目的,并不意味 著贊同其觀點或證實其內容的真實性。如轉載作品侵犯作者署名權,或有其他諸如版權、肖像權、知識產(chǎn)權等方面的傷害,并非本網(wǎng)故意為之,在接到相關權利人通知后將立即加以更正。聯(lián)系電話:0571-87774297。
0571-87774297  
中文字幕一区二区三区av| 欧美乱偷一区二区三区在线| 久久免费观看归女高潮特黄| 国产欧美久久久一区二区| 青青草亚洲在线一区观看| 日日摸日日碰人妻无码| 女人扒开屁股桶爽30分钟| 欧美日韩人妻一区二区三区| 嫩草伊人久久精品少妇AV| 香蕉国产人午夜视频在线| wwxx在线观看免费| 日韩中文字幕亚洲精品欧美| 久久青青草原精品首页99| 怡红院综合视频在线观看| 公主从小H后必须夹玉势SM| 18岁禁止入内| 人妻丰满熟妇AV无码区| 日韩视频在线观看| 亚洲国产成人片在线观看无码| chinese熟女老女人hd| 国产精品免费第一区二区| 亚洲AV无码国产精品永久一区| av影音先锋| 国产激情一区二区三区| 韩国a片巜上司与的人妻| 国产女人乱人伦精品一区二区| 日本大片电影一区二区三区| 在线观看911国产精品| 少妇高潮惨叫久久久久电影69| 欧美老熟妇乱子伦视频| 久久天天躁狠狠躁夜夜躁2014 | 亚洲av无码一区二区乱子伦as | 日本丶国产丶欧美色综合| 成年女人黄小视频| 国产精品爽黄69天堂A片潘金莲| 亚洲国产激情一区二区三区 | 88久久久久国产综合女同| 最近日本mv字幕免费观看视频| 日韩精品欧美国产中文字幕| 9制片厂制片传媒在线播放| 一本一道久久综合狠狠老|