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

        ?

        基于C#的自動上料機(jī)監(jiān)控軟件開發(fā)

        2019-01-08 08:37:44王東
        關(guān)鍵詞:上位機(jī)串口監(jiān)控

        王東

        摘要:利用C#語言基于MODBUS通信協(xié)議開發(fā)了自動上料機(jī)監(jiān)控系統(tǒng),該系統(tǒng)實現(xiàn)了對設(shè)備的手動、自動控制和監(jiān)視,并能對相關(guān)的運行參數(shù)進(jìn)行設(shè)置,介紹了系統(tǒng)開發(fā)中的主要方案及關(guān)鍵技術(shù),經(jīng)實際驗證,該系統(tǒng)穩(wěn)定可靠,達(dá)到了預(yù)期的目標(biāo)。

        關(guān)鍵詞:上位機(jī);MODBUS-ASCII;串口;監(jiān)控

        中圖分類號:TP39 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2019)10-0008-02

        某自動上料機(jī)用于將工件傳輸給測試設(shè)備進(jìn)行測試,該上料機(jī)有3個放料區(qū),分別為待測區(qū)、PASS區(qū)、FAIL區(qū),完成從待測區(qū)取料,送料給測試設(shè)備,測試完成后取回并根據(jù)測試結(jié)果(好或壞)將工件自動進(jìn)行分撿放置到PASS區(qū)和FAIL區(qū);3個放料區(qū)都由馬達(dá)和相應(yīng)的傳感器來控制,根據(jù)物料的高度自動升降料臺,以使料臺保持在合適的高度,方便上料機(jī)抓取和存放物料。該設(shè)備涉及啟動按鈕、安全光柵、限位開關(guān)等輸入端口40個,氣缸控制、直流電機(jī)控制等輸出端口16個,并由下位機(jī)直接控制,為了便于對設(shè)備進(jìn)行操作、監(jiān)視、控制和設(shè)置參數(shù),開發(fā)了自動上料機(jī)的監(jiān)控軟件,采用串口與下位機(jī)進(jìn)行通信,為了確保通信的穩(wěn)定可靠,采用了MODBUS-ASCII通信協(xié)議。

        1 上位機(jī)功能介紹

        根據(jù)上料機(jī)的工藝要求,本監(jiān)控軟件由自動運行,工藝設(shè)置,輸出狀態(tài),輸入狀態(tài),手動控制,報警信息,電機(jī)參數(shù)等七個模塊構(gòu)成,各自完成相應(yīng)的功能,具體功能需求如圖1所示。

        其中:自動運行主要用于監(jiān)視運行時物料及測試相關(guān)的2個主要參數(shù),設(shè)置錯開放板數(shù)量和測試速度,顯示當(dāng)前測試通過和測試失敗的數(shù)量信息,以及對設(shè)備的緊急控制和啟動等。

        工藝設(shè)置主要是進(jìn)行馬達(dá)控制、行程設(shè)定、氣缸控制以及馬達(dá)的參數(shù)設(shè)置。

        輸出狀態(tài):主要是各電機(jī)的正反轉(zhuǎn)控制,以及各端口的輸出狀態(tài)。

        輸入狀態(tài):主要顯示各輸入端口的狀態(tài),用于顯示監(jiān)控。

        手動控制:主要用于手動控制各執(zhí)行機(jī)構(gòu)的動作。

        電機(jī)參數(shù):主要用于設(shè)置各驅(qū)動軸的各項電機(jī)控制、氣缸控制參數(shù)等。

        2 上位機(jī)系統(tǒng)設(shè)計

        本系統(tǒng)運行環(huán)境為WINDOS 7及以上系統(tǒng),C#語言是微軟公司發(fā)布的一種面向?qū)ο蟮摹⑦\行于.NET Framework和.NET Core(完全開源,跨平臺)之上的高級程序設(shè)計語言。能使用SerialPort類庫直接進(jìn)行串口通信程序的開發(fā),并且提供了事件驅(qū)動模式,開發(fā)方便,WINFORM程序開發(fā)非常適合上位機(jī)軟件開發(fā),所以本系統(tǒng)采用C#語言開發(fā)。

        2.1 界面設(shè)計思路及關(guān)鍵方法

        根據(jù)上位機(jī)的功能需求,使用WINFORM繪制所需要的界面及相關(guān)的控件,具體如圖2(以自動運行為例)。

        由上圖可知,軟件分為左側(cè)的功能選擇區(qū)和右側(cè)的功能實現(xiàn)區(qū),左側(cè)功能選擇區(qū)包含7個按鈕(鎖定除外),對應(yīng)右側(cè)會包含7個界面,但任一時刻只顯示和左側(cè)選擇的功能相對應(yīng)的一個功能實現(xiàn)界面,為方便后期各功能界面之間的切換,每一個功能實現(xiàn)區(qū)所有控件組合成一個用戶自定義控件(UserControl)放到一個Panel控件中,故將整個界面分為兩部分:一是workbench,即整個軟件的主要界面,該workbench左側(cè)包含了各功能選擇按鈕區(qū)和右側(cè)的一個大的Panel控件,其中Panel控件用來作為各功能實現(xiàn)區(qū)用戶控件的容器;二是右側(cè)的功能實現(xiàn)區(qū),功能實現(xiàn)區(qū)實際是前面所述用戶自定義控件(UserControl),是放在Panel中的一個控件,每個控件對應(yīng)左側(cè)的一個功能按鈕,所以一共需要定義7個用戶自定義控件。

        為了保證軟件的可靠性和可維護(hù)性,軟件界面只能有一個實例,所以使用singleton模式來構(gòu)建用戶界面(workbench),對應(yīng)的界面類名MainFrom,定義singleton類:WorkBenchSingleTon,并定義MainFrom類型的私有類成員workBench,同時定義公開的靜態(tài)屬性WorkBench,但只提供外部對workBench的獲取,方便在整個軟件中其它控件對workBench訪問的同時又保證了只有一個workbench,具體代碼如下:

        public class WorkBenchSingleTon

        {

        private static MainForm workBench = new MainForm();

        public static MainForm WorkBench {

        get{

        if (workBench == null) {

        workBench = new MainForm();

        }

        return workBench;

        }

        }

        }

        2.2 通信功能實現(xiàn)

        根據(jù)該系統(tǒng)的整體設(shè)計方案,上位機(jī)與下位機(jī)之間的通信采用串口通信,且為了保證通信的可靠性使用MODBUS-ASCII通信協(xié)議。為了開發(fā)的方便,使用開源的類庫NMODBUS,NMODBUS基于.NET封裝了MODBUS協(xié)議的各項功能,使用方便,在此將NMODBUS提供的Master類作為workBench的成員,同時提供公開訪問器,不提供賦值,也確保整個系統(tǒng)中只有一個Master被實例化。各項參數(shù)的初始化都在MainForm的構(gòu)造函數(shù)中進(jìn)行。

        由前面的分析可知,右側(cè)的功能實現(xiàn)區(qū),都需要和下位機(jī)通過MODBUS進(jìn)行通信,而MODBUS的特點是通信由主機(jī)發(fā)起,從機(jī)不能主動發(fā)起通信,在此系統(tǒng)中,上位機(jī)為主機(jī),下位機(jī)為從機(jī),所以所有的通信都由上位機(jī)發(fā)起。上位機(jī)要實時獲取從機(jī)的數(shù)據(jù),必須以一定的時間間隔不停地向從機(jī)發(fā)送查詢命令,而本系統(tǒng)中,每個功能選擇都對應(yīng)一個功能實現(xiàn)區(qū),但同一時刻只有一個功能實現(xiàn)區(qū)才被顯示,故只需要查詢被顯示的功能實現(xiàn)區(qū)中所需要的數(shù)據(jù),其它的不用顯示,也就不需要向從機(jī)查詢。根據(jù)MODBUS通信的特性,需要定時向從機(jī)查詢數(shù)據(jù),若每個功能實現(xiàn)區(qū)均使用定時器定時查詢,則需要判斷自己當(dāng)前是否被顯示來確定是否訪問下位機(jī),容易造成多個功能實現(xiàn)區(qū)同時訪問從機(jī)造成軟件通信不穩(wěn)定,軟件不易維護(hù)等問題,因此定義一個接口IBaseControl,作為各功能實現(xiàn)區(qū)的接口約束,其中ReadModbusInfo用于實現(xiàn)各功能實現(xiàn)區(qū)需要向從機(jī)讀取數(shù)據(jù)的函數(shù),而Title用于標(biāo)識各功能實現(xiàn)區(qū)的名稱,其接口如下:

        interface IBaseControl : IDisposable

        {

        string Title{get;set;}

        bool ReadModbusInfo();

        }

        因此在各功能實現(xiàn)區(qū)只需要實現(xiàn)ReadModbusInfo成員函數(shù),實現(xiàn)需要讀取下位機(jī)數(shù)據(jù)的邏輯,而自身并不需要調(diào)用該成員函數(shù)。而將所有調(diào)用該函數(shù)的職責(zé)放到workBench中,在workBench中定義一個定時器,在定時器的事件響應(yīng)函數(shù)中調(diào)用當(dāng)前顯示的功能實現(xiàn)區(qū)的ReadModbusInfo接口函數(shù)即可,這樣所有功能實現(xiàn)區(qū)讀取從機(jī)數(shù)據(jù)的函數(shù)調(diào)用都集中在了一處,會自動根據(jù)當(dāng)前顯示的功能實現(xiàn)區(qū)而自動調(diào)用相應(yīng)的ReadModbusInfo實現(xiàn)函數(shù),方便軟件維護(hù)的同時提高了穩(wěn)定性。需要注意的是,由于使用了串口通信,其數(shù)據(jù)接收在另一個線程中實現(xiàn),所以在更新界面數(shù)據(jù)時,需要使用到委托才能更新數(shù)據(jù)。

        對從機(jī)的控制命令,同樣集中在workBench中,功能實現(xiàn)區(qū)的用戶控件需要向從機(jī)寫數(shù)據(jù)時只需通過WorkBenchSingleTon.WorkBench.Master.WriteSingleCoil()語句調(diào)用workbench中定義的寫寄存器函數(shù)向從機(jī)寫入相應(yīng)的數(shù)據(jù)即可實現(xiàn)向下位機(jī)發(fā)送命令。

        3 結(jié)語

        通過對自動上料機(jī)功能的分析,合理劃分軟件功能和實現(xiàn)方式,提高了軟件的可維護(hù)性和穩(wěn)定性,經(jīng)現(xiàn)場測試,本上位機(jī)軟件系統(tǒng)運行穩(wěn)定,與下位機(jī)的通信可靠達(dá)到了預(yù)期的目標(biāo)。

        參考文獻(xiàn)

        [1] 李植鵬,徐政.設(shè)計模式在高壓直流輸電設(shè)計軟件包中的應(yīng)用[J].電力建設(shè),2013,34(11):17-21.

        [2] 夏浩波.單例模式的設(shè)計與應(yīng)用[J].電腦開發(fā)與應(yīng)用,2011,24(01):58-59.

        [3] 代濤,楊麗紅.基于C#的空調(diào)壓縮機(jī)聲強(qiáng)測試平臺設(shè)計與實現(xiàn)[J].農(nóng)業(yè)裝備與車輛工程,2019,57(01):75-79.

        [4] 呂志剛,魯可心,李亮亮.基于C#的變電站運行參數(shù)監(jiān)控系統(tǒng)設(shè)計[J].工業(yè)控制計算機(jī),2018,31(07):32-33+36.

        [5] 楊少朋,趙龑驤.基于C#的溫濕度傳感器串口通信程序的實現(xiàn)[J].中國新通信,2019,21(15):22.

        猜你喜歡
        上位機(jī)串口監(jiān)控
        The Great Barrier Reef shows coral comeback
        淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
        你被監(jiān)控了嗎?
        Zabbix在ATS系統(tǒng)集中監(jiān)控中的應(yīng)用
        看監(jiān)控攝像機(jī)的4K之道
        論網(wǎng)絡(luò)通信技術(shù)
        基于云的短波發(fā)射機(jī)機(jī)房中央空調(diào)自動控制系統(tǒng)的設(shè)計與實現(xiàn)
        景點智能導(dǎo)航系統(tǒng)
        全自動包裝及碼垛系統(tǒng)的發(fā)展與應(yīng)用
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        国产人妖在线观看一区二区三区| 欧美成人三级一区二区在线观看| 国产日产欧洲系列| 亚洲日韩一区二区三区| 久久麻豆精品国产99国产精| 99久久精品国产亚洲av天| 久久伊人精品色婷婷国产| 国产毛片视频一区二区| 东北女人毛多水多牲交视频| 九九99久久精品在免费线18| 一本久久综合亚洲鲁鲁五月夫| 加勒比av在线一区二区| 久久久天堂国产精品女人| 国产精品成人va在线观看| 99这里只有精品| 国产无码十八禁| 国产一区二区三区在线av| 亚洲成人av在线蜜桃| 被黑人猛烈30分钟视频| 天堂√中文在线bt| 国产国拍亚洲精品永久69| 亚洲av一区二区网址| 中文字幕在线乱码av| 亚洲国产精品一区二区www| 精品国产一区二区三区19| 五月天亚洲av优女天堂| 亚洲视频网站大全免费看| 九九久久99综合一区二区| 无码人妻精品一区二区三区下载 | 成年人男女啪啪网站视频| 精品国产一区二区三区三级| 亚洲欧美乱日韩乱国产| 亚洲AV永久无码制服河南实里| 中文字幕日产人妻久久| 国产精品国产三级国产专区51区| 不卡的av网站在线观看| 国产精品久久一区二区三区| 中文字幕不卡在线播放| 日产乱码一区二区国产内射| 少妇被粗大进猛进出处故事| 亚洲av无码乱码在线观看裸奔|