亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VC++的PC 機與PLC 串口通訊的實現(xiàn)

        2010-04-24 07:25:56張瑞卿胡愛軍
        制造技術(shù)與機床 2010年9期
        關(guān)鍵詞:控件命令串口

        張瑞卿 胡愛軍 張 超

        (華北電力大學(xué)機械工程系,河北 保定 071003)

        隨著微電子及控制技術(shù)的不斷發(fā)展,PLC 已逐漸 成為一種智能型、綜合型控制器,由PLC構(gòu)成的集散控制是現(xiàn)代工業(yè)控制的一個重要組成部分。PLC 具有使用簡單方便,故障率低,抗干擾能力強等優(yōu)點;但同時,數(shù)據(jù)的計算處理與管理能力較弱,且無法提供良好的人機界面。將計算機與PLC 結(jié)合起來,可使兩者優(yōu)勢互補,充分利用計算機友好的人機界面,實現(xiàn)人機對話和監(jiān)控功能,并可進行一定的輔助決策,組成高性能價格比的控制系統(tǒng)。實現(xiàn)計算機與PLC 結(jié)合的控制系統(tǒng)的關(guān)鍵之一是二者之間的通信。

        本設(shè)計選用三菱FX2N 系列的PLC,以Visual C++6.0 作為開發(fā)工具對PLC 通訊主程序進行設(shè)計,串口通訊采用ActiveX 控制Microsoft Communication Control 6.0,最后用PLC 編程電纜將PLC 編程口與計算機串口連接進行調(diào)試。

        1 三菱PLC 與計算機之間通信協(xié)議

        串行通信是指外設(shè)和計算機間使用一根數(shù)據(jù)信號線一位一位地傳輸數(shù)據(jù),每一位數(shù)據(jù)都占據(jù)一個固定的時間長度。“串行”是指外設(shè)與接口電路之間的信息傳送方式,CPU 與接口之間仍按并行方式工作。串行通信的四個重要參數(shù):波特率(衡量通信速度的參數(shù))、奇偶校驗位(一種簡單的檢錯方式)、數(shù)據(jù)位(衡量通信中實際數(shù)據(jù)位的參數(shù))和停止位(表示單個數(shù)據(jù)包的最后一位)[1]。

        (1)三菱FX2N 系列通信數(shù)據(jù)幀格式

        FX2N 系列的PLC 與計算機之間的通信采用RS-232C 標(biāo)準(zhǔn),其傳輸速率一般設(shè)為9600 bps,實際傳輸過程還可設(shè)其它,比如115200 bps 等。奇偶校驗位采用偶校驗。數(shù)據(jù)以幀為單位發(fā)送和接收。一個多字符幀由起始字元、命令號碼、元件首地址、結(jié)束字元、和校驗五部分組成,其中和校驗值是將命令碼STX -ETX 之間的字符的ASCII 碼(十六進制數(shù))相加,取得所得和的最低二位數(shù)。STX 和ETX 分別表示該字符幀的起始標(biāo)志和結(jié)束標(biāo)志[2]。

        起始字元(STX):ASCII 碼的起始字元STX 對應(yīng)的16 進制數(shù)位0 ×02。無論命令信息還是回應(yīng)信息,它們的起始字元均為STX,接收方以此來判知傳輸資料的開始;

        命令號碼:為兩位16 進制數(shù)。所謂命令號碼是指上位機要求下位機所執(zhí)行的動作類別,例如要求讀取或?qū)懭雴吸c狀態(tài)、寫入或讀取暫存器資料、強制設(shè)定、運行、停止等。在回應(yīng)信息中,下位機會將上位機接收到的命令號碼隨同其它信息一同發(fā)送給上位機;

        元件首地址:對應(yīng)要操作的元件的相應(yīng)的地址。如從D123 單元中讀取數(shù)據(jù)時,要把它對應(yīng)的地址:0x10F6 發(fā)送給PLC;

        元件個數(shù):一次讀取位元件或字元件的數(shù)量;

        結(jié)束字元(ETX):ASCII 碼的結(jié)束字元ETX 對應(yīng)的16 進制數(shù)為0 ×03。無論命令信息還是回應(yīng)信息,它們的結(jié)束字元均為ETX,接收方以此來判知此次通訊已結(jié)束;

        校驗碼(Checksum):校驗碼是將STX -ETX 之間的ASCII 字元的16 進制數(shù)值以"LRC(Longitudinal Redundancy Check)"法計算出1 個Byte 長度(兩個16 進制數(shù)值00 -FFH)的校驗碼。當(dāng)下位機接收到信息后,用同樣的方法計算出接收信息的校驗碼,如果兩個校驗碼相同,則說明傳送正確[2]。

        (2)三菱FX2N 系列通信命令

        FX2N 系列PLC 有4 個通信命令,它們是讀命令(30H)、寫命令(31H)、強制通命令(37H)、強制斷命令(38H)。

        (3)三菱FX2N 系列通信控制字符

        ENQ(ASCII 代碼05H):計算機向PLC 發(fā)送請求;

        ACK(ASCII 代碼06H):PLC 對ENQ 的確定回答;

        NAK(ASCII 代碼15H):PLC 對ENQ 的否認回答;

        STX(ASCII 代碼02H):報文開始;

        ETX(ASCII 代碼02H):報文結(jié)束。

        (4)FX2N 系列設(shè)備地址

        ①讀寫時的軟設(shè)備地址

        S0 -S7:0000H;X0 -X7:0080H;Y0 -Y7:00A0H;T0 -T7:00C0H;M0 -M7:0100H;C0 -C7:01C0H;D0-D7:1000H

        ②置位/復(fù)位時的軟設(shè)備地址

        S0 -S7:0000H;X0 -X7:0400H;Y0 -Y7:0500H;T0 -T7:0600H;M0 -M7:0800H;C0 -C7:0E00H;D0-D7:0100H

        ③傳輸過程

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

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

        2 系統(tǒng)功能設(shè)計

        系統(tǒng)主要實現(xiàn)PLC 與計算機的通訊,具體主要完成PC 機指令下傳、監(jiān)測PLC 狀態(tài)、接收PLC 信息等功能。系統(tǒng)組成:小型PLC 一臺、RS232 串口、編程電纜、通訊界面。主操作界面在完成系統(tǒng)功能的前提下,力求明了直觀,操作簡單靈活方便。系統(tǒng)以VC++6.0 為平臺,設(shè)計的界面如圖2 所示。

        本程序設(shè)計了四個串口可供選擇,只有在選擇串口之后才可進行“打開串口,關(guān)閉串口”的操作,當(dāng)打開串口以后,就可以對PLC 進行相應(yīng)的操作了,為了使界面整潔干凈,特別設(shè)計了“清空發(fā)送區(qū)”和“清空接收區(qū)”選項,當(dāng)發(fā)送數(shù)據(jù)和接收數(shù)據(jù)放滿編輯框時只需點擊這兩個按鈕,數(shù)據(jù)就會清空。且實現(xiàn)代碼相當(dāng)簡單,m-sSend.Empty()、m-sReceive.Empty()就可輕松實現(xiàn)這一任務(wù)。

        PC 機與PLC 的通訊程序流程圖如圖3 所示。

        系統(tǒng)通信控制程序采用了MSComm 控件。此控件提供了兩種通信方法:①文件驅(qū)動,即用MSComm控件的OnComm 文件捕獲并處理通信事件和錯誤,它是處理串行端口交互作用的一種非常有效的方法;②查詢方式,通過查詢串口屬性來獲得事件和錯誤,實質(zhì)上還是屬于事件驅(qū)動,但在有些情況下顯得更為便捷。MSComm6.0 控件的屬性:①CommPort,設(shè)置或返回通信端口號;②Settings,以字符串的形式設(shè)置或返回波特率、奇偶校驗、數(shù)據(jù)位和停止位;③PortOpen,設(shè)置或返回通信端口的狀態(tài),也可以打開和關(guān)閉端口;④Input,返回和刪除接收緩沖區(qū)中的字符;⑤InputMode,設(shè)置或返回Input 屬性取回的數(shù)據(jù)的類型,數(shù)據(jù)取回的形式為字符串或二進制數(shù)據(jù)的數(shù)組;⑥CommEvent 返回最近的通信事件或錯誤的數(shù)字代碼,通信程序設(shè)計時可以根據(jù)該屬性值執(zhí)行不同的操作,在運行時為只寫;⑦Output,將字符串寫入發(fā)送緩沖區(qū)。

        MSComm6.0 控件只有一個事件,即Oncomm 事件。在通信時如果發(fā)生錯誤或者事件,將會引發(fā)Oncomm 事件并且改變其屬性值,通過GetCommEvent()可獲得Oncomm 產(chǎn)生事件或錯誤的代碼。在與PLC進行通信的過程中,使用MSComm6.0 控件可以自動完成PLC 對計算機發(fā)送信息的接收,最終實現(xiàn)PC 機對PLC 的狀態(tài)檢測。

        軟件實現(xiàn)過程:FX2N 系列的PLC 與計算機之間的通信采用RS-232C 標(biāo)準(zhǔn),其傳輸速率固定為9600 bps,奇偶校驗位采用偶校驗。數(shù)據(jù)以幀為單位發(fā)送和接收。PC 機向PLC 中寫數(shù)據(jù)時首先需對串口進行初始化,并對波特率、校驗位等進行設(shè)置,然后根據(jù)通信協(xié)議對PLC 進行相應(yīng)的讀寫、復(fù)位、置位等操作,PLC根據(jù)PC 機送來的控制字進行相應(yīng)的操作。數(shù)據(jù)發(fā)送,采用專用發(fā)送指令XMT TABLE,CommPort,其中TABLE 為發(fā)送緩沖區(qū)的首地址,首地址中保存要發(fā)送的字節(jié)數(shù),即數(shù)據(jù)長度,最大為255,其后的地址中保存要發(fā)送的數(shù)據(jù),CommPort 指定用于發(fā)送的端口。對于數(shù)據(jù)接收,使用接收指令RCV TABLE,CommPort,接收指令激活初始化或結(jié)束接收信息,通過制定端口接收信息并存儲于數(shù)據(jù)緩沖區(qū)中,數(shù)據(jù)緩沖區(qū)的第一個數(shù)據(jù)指明了接收的字節(jié)數(shù)。

        3 系統(tǒng)功能驗證

        將計算機用通訊電纜與PLC 相連后,首先發(fā)送請求05H 以后,驗證計算機與PLC 是否可以正常通信,接收區(qū)顯示06,表示PLC 對ENQ 的確定回答,即PLC已準(zhǔn)備好,可以進行下面的操作,具體如圖4 和圖5。

        這里主要對PLC 讀值功能進行驗證。讀操作命令格式如下:

        STX -CMD0 -數(shù)據(jù)段-ETX-SUMH-SUML

        在按上述命令格式發(fā)送相應(yīng)的代碼后,就可直接讀取PLC 響應(yīng)的信息了。響應(yīng)信息格式如下:

        STX-DATA-ETX-SUMH-SUML

        圖6 和圖7 分別是對PLC 進行讀值驗證時發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的顯示。

        其中接收數(shù)據(jù)顯示中的023030033633,是對X 軟地址值(0080H)讀取后接收到的數(shù)據(jù)。具體算法如下:

        故,轉(zhuǎn)變成兩字節(jié)ASCII 代碼SUMLX=33;SUMHX=36。

        理論分析和實際操作的結(jié)果是一致的,即證明了本設(shè)計是準(zhǔn)確無誤的。

        4 結(jié)語

        本文主要使用Visual C++6.0 作為開發(fā)工具,通過編寫各個模塊對應(yīng)的操作程序,最后用通訊電纜將PC 機與三菱PLC 相連進行調(diào)試,基本上達到了預(yù)期的設(shè)計目標(biāo),實現(xiàn)了計算機與PLC 的通信功能。

        [1]張筠莉,劉書智.Visual C++實踐與提高——串口通信與工程應(yīng)用篇[M].北京:中國鐵道出版社,2005.

        [2]李現(xiàn)勇.Visual C++串口通信技術(shù)與工程實踐(第二版)[M].北京:人民郵電出版社,2004.

        [3]賀哲榮,石帥軍.流行PLC 實用程序及設(shè)計[M].西安:西安電子科技大學(xué)出版社,2006.

        [4]王力虎,李紅波.PC 控制及接口程序設(shè)計實例[M].北京:科學(xué)出版社,2004.

        [5]王衛(wèi)兵.PLC 系統(tǒng)通信、擴展與網(wǎng)絡(luò)互連技術(shù)[M].北京:機械工業(yè)出版社,2004.

        猜你喜歡
        控件命令串口
        只聽主人的命令
        淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        移防命令下達后
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        這是人民的命令
        基于藍牙串口適配器的GPS接收機與AutoCAD的實時無線通信
        地礦測繪(2015年3期)2015-12-22 06:27:26
        基于并行控制的FPGA多串口拓展實現(xiàn)
        藍色命令
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        草草浮力地址线路①屁屁影院| 午夜桃色视频在线观看| 视频一区二区三区黄色| 亚洲av成人久久精品| 国产成人精品一区二三区孕妇| 国产啪亚洲国产精品无码 | 中国老熟女露脸老女人| 国产精品久久久国产盗摄| 国产一区二区波多野结衣| 色欲AV成人无码精品无码| 美女把内衣内裤脱了给男人舔 | 美女胸又www又黄的网站| 91亚洲人成手机在线观看| 精品国产污黄网站在线观看| 级毛片内射视频| 中文字幕乱码一区av久久不卡| 国产欧美日韩在线观看| 国产偷闻隔壁人妻内裤av| 亚洲成在人线天堂网站| 丰满少妇在线播放bd| 中文字幕久久久人妻无码| 国产在线精品一区二区不卡| 久久这里只精品国产2| 男女视频在线观看一区二区| 久久久久久自慰出白浆| 三年在线观看免费大全下载| 五月天激情小说| 一片内射视频在线观看| 国产熟人精品一区二区| 久久无码av中文出轨人妻| 国产亚洲精品A在线无码| 蜜桃视频中文字幕一区二区三区 | 国产极品喷水视频| 精品国产一区二区三区av免费| 国产精品天干天干| 国产成人久久777777| 日本一区免费喷水| 日本黑人亚洲一区二区 | 午夜一区欧美二区高清三区| 精品的一区二区三区| 在线播放国产自拍av|