超碰激情 I 成人福利网站 I 淫国产 I 曰批视频免费30分钟成人 I 刘亦菲裸体视频一区二区三区 I 午夜久 I 尤物综合 I 亚洲一区av在线观看 I 欧美亚洲国产精品久久高清 I 欧美老熟妇乱子伦视频 I 无码中出人妻中文字幕av I 久久美女福利视频 I 精品无人区乱码1区2区3区在线 I 性饥渴的农村熟妇 I 色综合综合色 I 少妇人妻88久久中文字幕 I 久久夜色精品国产噜噜av I 老熟妇仑乱视频一区二区 I 男女做爰猛烈叫床视频动态图 I 日本大片一区二区 I 人成午夜免费视频在线观看 I 激情婷婷av I 男女下面一进一出免费视频网站 I 久久影视一区 I 午夜污网站 I 先锋人妻无码av电影 I 久久久久久久岛国免费网站 I 又粗又大又黄又硬又爽免费看 I 人妻无码免费一区二区三区 I www.色成人100 I 欧美高清网站 I 精品国产第一页 I 国产suv一区二区三区88区 I 橹图极品美女无圣光 I 午夜宅男欧美

產(chǎn)品分類(lèi)

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

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

三菱PLC編程口通信技術(shù)在機(jī)械手遠(yuǎn)程控制中的應(yīng)用

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

    摘要:介紹了根據(jù)三菱FX系列PLC編程口通信技術(shù)的特點(diǎn),設(shè)計(jì)基于VB的PC與PLC機(jī)械手遠(yuǎn)程控制程序。通過(guò)機(jī)械手監(jiān)控系統(tǒng)軟件的具體應(yīng)用,系統(tǒng)地介紹了VB環(huán)境下的MSComm通訊控件、PLC與上位機(jī)的編程口通信協(xié)議、系統(tǒng)控制方法設(shè)計(jì)以及監(jiān)控軟件的實(shí)現(xiàn)過(guò)程。

    關(guān)鍵詞:可編程控制器;編程口VB;通信;機(jī)械手

    中圖分類(lèi)號(hào):TN919.3∶TP241文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1007—6921(2008)18—0116—03

    可編程控制器PLC由于可靠性高、適應(yīng)性好、接口功能強(qiáng)、體積小以及組態(tài)靈活等優(yōu)點(diǎn),在工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用。但是PLC在實(shí)際的工程應(yīng)用中一般與上位計(jì)算機(jī)組成分布式/分級(jí)型控制系統(tǒng)來(lái)完成監(jiān)控任務(wù),這就需要使用PLC的通訊技術(shù)。而PLC的編程口在上傳控制程序后,一般處于閑置狀態(tài),在機(jī)械手監(jiān)控系統(tǒng)中,三菱FX1N40MRPLC作為下位機(jī)并以編程口作為通信口,用來(lái)完成控制量的輸出、傳感器數(shù)據(jù)的采集等工作,上位機(jī)采用個(gè)人計(jì)算機(jī)(PC),用來(lái)完成傳感數(shù)據(jù)分析、運(yùn)動(dòng)規(guī)劃,狀態(tài)顯示等功能,以實(shí)現(xiàn)對(duì)機(jī)械手的實(shí)時(shí)監(jiān)控。

    為實(shí)現(xiàn)PLC與上位計(jì)算機(jī)的數(shù)據(jù)通訊,有多種開(kāi)發(fā)平臺(tái)可以使用,其中VB是一套完全獨(dú)立的WINDOWS開(kāi)發(fā)系統(tǒng),是可視化的、面向?qū)ο蟆⒉捎檬录?qū)動(dòng)方式的高級(jí)程序設(shè)計(jì)語(yǔ)言。尤其是它提供了一個(gè)預(yù)定義對(duì)象——MSComm通訊控件。通過(guò)設(shè)置該對(duì)象的屬性,向?qū)ο蟀l(fā)送信息,以及為對(duì)象事件編寫(xiě)響應(yīng)代碼,可以很方便地完成用戶(hù)應(yīng)用程序之間的串行通訊,對(duì)于通過(guò)編程口與串行口進(jìn)行數(shù)據(jù)通訊的PLC與上位計(jì)算機(jī)組成的監(jiān)控系統(tǒng),它提供了穩(wěn)定、可靠的通訊。

    1機(jī)械手的系統(tǒng)控制方法

    機(jī)械手是由機(jī)械本體、氣動(dòng)控制系統(tǒng)、PC-PLC監(jiān)控系統(tǒng)組成,其機(jī)械結(jié)構(gòu)如圖1所示。機(jī)械手是由基座、腰部、手臂和手爪等幾部分組成,分別完成扭轉(zhuǎn)、升降、手爪翻轉(zhuǎn)、手臂伸縮和手爪夾持動(dòng)作。而上述5種動(dòng)作是由氣缸驅(qū)動(dòng)實(shí)現(xiàn)的,氣動(dòng)原理如圖2所示。其中扭轉(zhuǎn)氣缸、升降氣缸、手臂伸縮氣缸是由三位五通閥來(lái)控制,而手臂翻轉(zhuǎn)、手爪夾持、氣動(dòng)系統(tǒng)通斷是由二位五通閥來(lái)控制的。對(duì)各電磁閥的控制是由PLC遠(yuǎn)程實(shí)現(xiàn)的。

    為了實(shí)現(xiàn)對(duì)機(jī)械手工作狀態(tài)的監(jiān)視和控制,充分利用計(jì)算機(jī)系統(tǒng)具有的遠(yuǎn)程控制和管理功能。為此,我們將控制系統(tǒng)確定為兩級(jí)計(jì)算機(jī)監(jiān)控系統(tǒng):PC計(jì)算機(jī)為管理級(jí),可編程控制器PLC為控制級(jí)。系統(tǒng)組成如圖3所示:系統(tǒng)由上位機(jī)PC、PLC、驅(qū)動(dòng)電路、執(zhí)行元件以及傳感器、外部控制信號(hào)等幾部分組成。

    2PLC編程口與上位機(jī)的通信協(xié)議基礎(chǔ)

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

    2.1PC與PLC的異步通信接口采用的總線(xiàn)標(biāo)準(zhǔn)一致,否則要通過(guò)“總線(xiàn)標(biāo)準(zhǔn)變換單元”變換后才能互聯(lián)。在機(jī)械手的控制系統(tǒng)中,PC機(jī)與FX系列PLC不能直接連接,要通過(guò)FX-232AW單元進(jìn)行RS232C/RS-422的變換,即上位機(jī)與可編程控制器是通過(guò)RS232/422編程電纜進(jìn)行連接通信的。

    2.2雙方的初始化,使波特率、數(shù)據(jù)位數(shù)、停止位、奇偶校驗(yàn)都相同。FX系列PLC采用異步格式,由1位起始位、7位數(shù)據(jù)位、1位奇偶校驗(yàn)位以及1位停止位組成,波特率為9600bps,字符為ASCII碼。

    2.3嚴(yán)格按照PLC通信協(xié)議的規(guī)定及幀格式編寫(xiě)PC機(jī)的通信程序。FX系列PLC有4個(gè)通信命令,它們是讀命令(0)、寫(xiě)命令(1)、強(qiáng)制通命令(7)、強(qiáng)制斷命令(8)。同時(shí)FX系列PLC采用面向字符的傳輸規(guī)程,用到5個(gè)通信控制字符:

    ENQ——計(jì)算機(jī)發(fā)出請(qǐng)求(05H)

    ACK——PLC對(duì)ENQ的確認(rèn)回答(06H)

    NAK——PLC對(duì)ENQ的否認(rèn)回答(15H)

    STX——信息幀開(kāi)始標(biāo)記(02H)

    ETX——信息幀結(jié)束標(biāo)記(03H)

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

    3利用VB編寫(xiě)通信程序

    利用VB提供的定時(shí)器控件和MSComm通訊控件,可以很方便地編制面向?qū)ο蟮膽?yīng)用程序,命令傳遞、數(shù)據(jù)交換、圖形顯示在定時(shí)器控件和通訊控件中完成。

    使用MSComm通訊控件的第一步是建立與串行口的連接。通過(guò)設(shè)置CommPort,PortOpen和Settings屬性來(lái)打開(kāi)串行端口。

    CommPort屬性:設(shè)置或返回通訊端口號(hào)。注意:每個(gè)使用的MSComm控件對(duì)應(yīng)著一個(gè)串行端口。如果應(yīng)用程序要訪(fǎng)問(wèn)多個(gè)串行端口,例如應(yīng)用程序需要和多個(gè)下位PLC通訊,必須使用多個(gè)使用MSComm控件。

    Settings屬性:以字符串的形式設(shè)置或返回串行通訊協(xié)議。該屬性值由4個(gè)設(shè)置值組成,有如下的形式:“BBBB,P,D,S”,BBBB為波特率,P為奇偶校驗(yàn),D為數(shù)據(jù)位數(shù),S為停止位數(shù)。在實(shí)現(xiàn)上位機(jī)和PLC的通訊中,Settings屬性值的設(shè)置應(yīng)該根據(jù)下位機(jī)PLC的D8120單元的值來(lái)設(shè)定。Fx系列的標(biāo)準(zhǔn)通訊參數(shù)為9600,E,7,1

    PortOpen屬性:設(shè)置并返回通訊端口的狀態(tài)。將PorlOpen屬性設(shè)置為T(mén)rue打開(kāi)端口,將PortOpen屬性設(shè)置為False關(guān)閉端口。注意:打開(kāi)端口建立連接之前,必須先用CommPort,Settings屬性正確指定端口號(hào)(必須是物理或邏輯存在的端口)和通訊協(xié)議,一旦打開(kāi)端口后,不可以隨便更改CommPort,Settings屬性的設(shè)置,如果在程序運(yùn)行中必須更改這兩項(xiàng)屬性,應(yīng)該先關(guān)閉端口,改變?cè)O(shè)置值之后,再重新打開(kāi)端口。

    端口打開(kāi)后,就創(chuàng)建了空的接收和發(fā)送緩沖區(qū),端口關(guān)閉緩沖區(qū)被清零。MSComm控件提供了一系列的屬性來(lái)管理這些緩沖區(qū)。

    1nBufferSize和OutBufferSize屬性:分配接收和發(fā)送緩沖區(qū)內(nèi)存的大小。

    InBufferCount和OutBuffeiCount屬性:分別獲得接緩沖區(qū)和發(fā)送緩沖區(qū)中字節(jié)的數(shù)目。在程序執(zhí)行過(guò)程中,將這兩個(gè)屬性的值設(shè)置為零,即可清空接收或發(fā)送緩沖區(qū)。

    Rthreshold和Sthreshold屬性:設(shè)定OnComm事件發(fā)生前,接收或發(fā)送緩沖區(qū)中可以存放的字節(jié)數(shù)。將這兩個(gè)屬性值設(shè)置為零,可以抑制相應(yīng)的OnComm事件發(fā)生。

    Input屬性:獲取輸入緩沖區(qū)中的數(shù)據(jù),并將保存在輸人緩沖區(qū)的數(shù)據(jù)刪除。

    Output屬性:向發(fā)送緩沖區(qū)寫(xiě)人數(shù)據(jù)。

    InputLen屬性:設(shè)置并返回Input屬性從接收緩沖區(qū)讀取的字符數(shù)。如果把Input屬性設(shè)置為零,在使用Input屬性時(shí),MSComm控件將讀取接收緩沖區(qū)的所有內(nèi)容。

    通信口初始化程序舉例如下:

    PrivateSubForm_Load()進(jìn)行通訊端口和初始化設(shè)置。

    MSComm1.CommPort=1

    MSComm1.Settings=“9600,e,7,1”端口設(shè)置:波特率為9600bit/s、偶校驗(yàn)、7位數(shù)據(jù)位、1位停止位。

    MSComm1.InputMode=comInputModeText'文本字符串接收方式

    MSComm1.InBufferSize=1024'輸入數(shù)據(jù)接收緩沖區(qū)長(zhǎng)度

    MSComm1.OutBufferSize=512'輸出數(shù)據(jù)緩沖區(qū)長(zhǎng)度

    MSComm1.RThreshold=0'每接受到字符就產(chǎn)生接受中斷

    MSComm1.SThreshold=0'禁止發(fā)送中斷,進(jìn)行無(wú)條件發(fā)送

    IfMSComm1.PortOpen=FalseThen

    MSComm1.PortOpen=True'打開(kāi)串行通信接口COM1

    EndIf

    EndSub

    4機(jī)械手監(jiān)控軟件的實(shí)現(xiàn)

    利用計(jì)算機(jī)語(yǔ)言VB編寫(xiě)的機(jī)械手監(jiān)控程序主要分為以下幾部分:登陸及選擇控制方式畫(huà)面、手動(dòng)控制界面和自動(dòng)控制界面。手動(dòng)控制界面與自動(dòng)控制界面如圖4所示。

    上位計(jì)算機(jī)主要完成運(yùn)動(dòng)命令的生成,在獲取機(jī)械手傳感器信息的基礎(chǔ)上,完成機(jī)械手動(dòng)作在計(jì)算機(jī)屏幕上的實(shí)時(shí)顯示。在機(jī)械手出現(xiàn)故障時(shí),允許通過(guò)手動(dòng)控制界面的按鈕來(lái)遠(yuǎn)程控制機(jī)械手動(dòng)作。下位機(jī)PLC完成對(duì)電磁閥的控制從而驅(qū)動(dòng)氣動(dòng)執(zhí)行元件。

    手動(dòng)控制界面主要由狀態(tài)顯示區(qū)、按鈕控制區(qū)、位置顯示區(qū)、時(shí)間顯示區(qū)以及各種交互控制按鈕組成。如圖4(a)所示。按鈕控制區(qū)的按鈕通過(guò)用戶(hù)程序和PLC與各電磁閥的線(xiàn)圈相連,實(shí)現(xiàn)遠(yuǎn)程控制氣缸動(dòng)作。每個(gè)氣缸控制按鈕的多少是與電磁閥的線(xiàn)圈數(shù)相對(duì)應(yīng)的,如果是三位五通閥則有三個(gè)按鈕,二位五通閥有兩個(gè)按鈕。

    自動(dòng)循環(huán)控制界面主要由狀態(tài)顯示區(qū)、按鈕控制區(qū)、位置顯示區(qū)、時(shí)間顯示區(qū)、報(bào)警區(qū)以及日志報(bào)告區(qū)等。如圖4(b)所示。匣置顯示區(qū)的各狀態(tài)顯示是通過(guò)PC與PLC實(shí)時(shí)通信實(shí)現(xiàn)的。

    4.1控制命令的發(fā)送:手動(dòng)控制界面與自動(dòng)循環(huán)控制界面中控制命令都是通過(guò)按鈕控制區(qū)的按鈕發(fā)送出去的,在發(fā)送控制命令之前,必須先形成控制命令幀。通常,按鈕對(duì)PLC的控制是對(duì)中間輔助繼電器的控制,是軟件對(duì)PLC內(nèi)部寫(xiě)命令過(guò)程,該過(guò)程是通過(guò)WriteToPLC()函數(shù)實(shí)現(xiàn)的,其程序如下:

    PublicSubWriteToPLC()

    DimDUMMYAsString

    IfMSComm1.PortOpen=FalseThen

    MSComm1.PortOpen=True''''''打開(kāi)通信端口Comm1

    EndIf

    MSComm1.InputLen=0'''''初始化通信端口Comm1

    MSComm1.Output=MWRITE)nCmdCounter)'''''通信端口Comm1寫(xiě)出數(shù)據(jù)包

    EndSub

    控制界面中的所有的寫(xiě)命令又是通過(guò)數(shù)組MWRITE()來(lái)實(shí)現(xiàn)的。其元素包括舉例如下:

    MWRITE(1)=Chr$(2)+“1”+“0111011”+Chr$(3)+“89”'''手爪夾持M136置1

    MWRITE(2)=Chr$(2)+“1”+“0111010”+Chr$(3)+“88”'''''手爪松開(kāi)M136置0

    4.2定時(shí)讀取機(jī)械手狀態(tài)信息:在狀態(tài)顯示區(qū)內(nèi),顯示的是手爪氣缸、手臂氣缸、升降氣缸、扭轉(zhuǎn)氣缸和手腕氣缸的電磁閥的工作狀態(tài)。當(dāng)按鈕控制區(qū)的按鈕被按下時(shí),狀態(tài)顯示區(qū)的狀態(tài)指示燈將被點(diǎn)亮,表示PLC的某個(gè)對(duì)應(yīng)的輸出端子正在工作。該信號(hào)是通過(guò)與PLC進(jìn)行的實(shí)時(shí)數(shù)據(jù)交換得到的,是PLC的端子的實(shí)時(shí)狀態(tài)。同樣地,在位置顯示區(qū),顯示的是機(jī)械手運(yùn)動(dòng)氣缸的活塞桿位置狀態(tài),是否到達(dá)左右極限。當(dāng)活塞桿到達(dá)極限位置,相應(yīng)的位置顯示區(qū)的極限報(bào)警燈將被點(diǎn)亮,表示PLC的某個(gè)對(duì)應(yīng)的輸入端子正在工作。該信號(hào)也是通過(guò)與PLC進(jìn)行的實(shí)時(shí)數(shù)據(jù)交換得到的,是PLC的端子的實(shí)時(shí)狀態(tài)。軟件對(duì)PLC各個(gè)元器件狀態(tài)的獲取是通過(guò)讀命令和軟件的定時(shí)器控件Timer()來(lái)實(shí)現(xiàn)的。讀命令是通過(guò)函數(shù)ReadFromPLC()實(shí)現(xiàn)的。其程序?yàn)椋?/p>

    PublicSubReadFromPLC()

    DimDUMMYAsString

    ''''向計(jì)算機(jī)發(fā)送讀取命令''''''''''''

    IfMSComm1.PortOpen=FalseThen

    MSComm1.PortOpen=True

    EndIf

    ''讀取D數(shù)據(jù)寄存器的數(shù)據(jù)''''''

    MSComm1.InputLen=0

    MSComm1.Output=ReadCmd(nCounter)'''''''從MSComm1.Output發(fā)送數(shù)組ReadCmd(20)中的字符串

    Do

    DUMMY=DoEvents()

    LoopUntilMSComm1.InBufferCount>=6

    ReturnData(nCounter)=MSComm1.Input

    將MSComm1.Input接收到的信號(hào)存放在數(shù)組ReturnData()中,然后根據(jù)接收到的數(shù)據(jù)分配給用戶(hù)界面中的各種狀態(tài)顯示。

    手控界面中的所有的讀命令又是通過(guò)數(shù)組ReadCmd()來(lái)實(shí)現(xiàn)的。其元素包括舉例如下:

    ReadCmd(0)=Chr$(2)+“0”+“100001”+Chr$(3)+“55”'''讀取D0數(shù)據(jù)

    5結(jié)束語(yǔ)

    通過(guò)機(jī)械手監(jiān)控系統(tǒng)的具體程序,系統(tǒng)地闡述了VB環(huán)境下的PC與PLC編程口通信應(yīng)用程序的設(shè)計(jì)方法。系統(tǒng)運(yùn)行表明,用PLC編程口與VB通信控件編寫(xiě)的實(shí)時(shí)通訊程序可靠、穩(wěn)定,很好地滿(mǎn)足了機(jī)械手實(shí)時(shí)監(jiān)控系統(tǒng)的應(yīng)用要求。

    [參考文獻(xiàn)]

    [1]郁漢琪,郭健,等.可編程序控制器原理及應(yīng)用[M].北京:中國(guó)電力出版社,2004.

    [2]劉圣才,李春葆.VisualBasic6程序設(shè)計(jì)導(dǎo)學(xué)[M].北京:清華大學(xué)出版社,2002.

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

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