国产视频www-国产视频xxx-国产视频xxxx-国产视频一二-一本大道香蕉中文日本不卡高清二区-一本久久精品一区二区

樹人論文網(wǎng)一個專業(yè)的學術咨詢網(wǎng)站!??!
樹人論文網(wǎng)

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

來源: 樹人論文網(wǎng)發(fā)表時間:2020-01-13
簡要:摘要:利用C#語言基于MODBUS通信協(xié)議開發(fā)了自動上料機監(jiān)控系統(tǒng),該系統(tǒng)實現(xiàn)了對設備的手動、自動控制和監(jiān)視,并能對相關的運行參數(shù)進行設置,介紹了系統(tǒng)開發(fā)中的主要方案及關鍵

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

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

科技論文發(fā)表

  《網(wǎng)絡科技時代》雜志創(chuàng)刊于2001年1月,是中華人民共和國教育部主管,中央電化教育館等單位主辦的電腦普及月刊,全國公開發(fā)行。

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

  1 上位機功能介紹

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

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

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

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

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

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

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

  2 上位機系統(tǒng)設計

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

  2.1 界面設計思路及關鍵方法

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

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

  為了保證軟件的可靠性和可維護性,軟件界面只能有一個實例,所以使用singleton模式來構建用戶界面(workbench),對應的界面類名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)的整體設計方案,上位機與下位機之間的通信采用串口通信,且為了保證通信的可靠性使用MODBUS-ASCII通信協(xié)議。為了開發(fā)的方便,使用開源的類庫NMODBUS,NMODBUS基于.NET封裝了MODBUS協(xié)議的各項功能,使用方便,在此將NMODBUS提供的Master類作為workBench的成員,同時提供公開訪問器,不提供賦值,也確保整個系統(tǒng)中只有一個Master被實例化。各項參數(shù)的初始化都在MainForm的構造函數(shù)中進行。

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

  interface IBaseControl : IDisposable

  {

  string Title{get;set;}

  bool ReadModbusInfo();

  }

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

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

  3 結語

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

  參考文獻

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

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

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

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

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

主站蜘蛛池模板: 国产一区在线免费观看 | 性刺激免费视频观看在线观看 | 九九精品视频在线播放 | 亚洲国产成人99精品激情在线 | 欧美另类videosbestsex视频 | 久久午夜精品视频 | 亚洲日本一区二区三区 | 亚洲成年人网址 | 深夜国产成人福利在线观看女同 | www.黄色片| 成人免费网站久久久 | 台湾黄三级高清在线观看播放 | 香蕉依依精品视频在线播放 | 美女扒开双腿让男人桶 | 亚洲精品韩国美女在线 | 免费一级成人免费观看 | 亚洲精品日韩在线一区 | 国产成人免费午夜在线观看 | a级毛片毛片免费观看久潮喷 | 成人性色生活片全黄 | 亚洲国产成人久久一区久久 | 日本aaaaa级毛片| 美国一级毛片视频 | 手机毛片免费看 | 久久综合久久88 | 成人精品网 | 久久精品视频在线播放 | 国产成人综合网在线播放 | 97天天干| 99久久精品男女性高爱 | 国产一二三区在线观看 | 亚洲精品一区二区三区不卡 | 欧美69视频在线 | 国产1区在线观看 | 一级欧美一级日韩毛片99 | 模特三级在线观看 | 日韩欧美a级高清毛片 | 亚洲综合色一区二区三区小说 | 日本成人不卡视频 | 成年人视频免费网站 | 亲子乱子伦xxxx |