• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于C#的密集架串口通信服務(wù)的設(shè)計與實現(xiàn)

      2012-03-01 03:57:08宋先斌
      關(guān)鍵詞:通信協(xié)議監(jiān)聽流程圖

      劉 鋒 宋先斌

      (1.南通職業(yè)大學,江蘇 南通 226007;2.常州信息職業(yè)技術(shù)學院,江蘇 常州 213164)

      0 引言

      近年來,國家檔案局立文要求所有的檔案實現(xiàn)數(shù)字化管理,同時,所有的原始檔案材料也必須按規(guī)定有序、分類、安全存放。目前比較普遍的原始檔案材料管理方式是利用智能密集架存放。智能密集架的設(shè)計以區(qū)為單位,各區(qū)為一個整體,是一個獨立的區(qū)間。一個區(qū)又分為若干列,每列又分為若干行、若干列,行列交叉單元格即為一個存儲位。各區(qū)配置一個中心智能控制PLC芯片,一個LCD顯示控制屏,一個驅(qū)動馬達。操作員通過在LCD屏上輸入指令來控制PLC完成相關(guān)的打開、通風、除潮等日常操作。已整理好的檔案材料均編號,裝盒,按一定存放規(guī)則放到存儲位上。如何結(jié)合高層管理系統(tǒng)實現(xiàn)自動的查詢并打開某檔案的存放位置?如何實時高效的監(jiān)控庫房的溫濕度以便加強控制?對此問題的解決,本文采用RS485 com串口[1]與架體的PLC模塊進行連接,定制一套通信協(xié)議,并利用C#語言將對PLC的控制打包成Windows服務(wù)安裝在控制機上;同時該服務(wù)利用Socket技術(shù)[2]開放通信端口,方便其他管理系統(tǒng)調(diào)用。

      1 系統(tǒng)設(shè)計

      本方案的拓撲結(jié)構(gòu)如圖1所示。其工作流程描述如下:

      1)用戶通過各種終端設(shè)備,聯(lián)網(wǎng)查詢檔案數(shù)據(jù)(中心應(yīng)用服務(wù)器),得到需要查閱的檔案物理存放地址。

      2)中心應(yīng)用服務(wù)器與硬件控制服務(wù)器通過Socket端口連接,將查找到的檔案物理存放地址(已按規(guī)則編號,規(guī)則如A010203L,表示第A區(qū)01列02節(jié)03層左邊)發(fā)送到硬件控制服務(wù)器。

      3)硬件控制服務(wù)器進行數(shù)制轉(zhuǎn)化,將所有內(nèi)容轉(zhuǎn)化為二進制,通過com串口向PLC發(fā)送指令,記錄操作日志,并獲得返回結(jié)果。

      4)硬件控制服務(wù)器上的控制服務(wù)將結(jié)果返回給用戶。為了方便安裝和調(diào)用,特將控制程序以Windows服務(wù)方式部署在硬件控制服務(wù)器上。與上層應(yīng)用程序的通信采用Socket多線程機制[3]實現(xiàn),與PLC硬件的通信通過RS485串口完成。Socket通信速度快,比較穩(wěn)定,一般不會受網(wǎng)絡(luò)延時影響造成數(shù)據(jù)丟失。

      圖1 方案拓撲結(jié)構(gòu)圖

      2 硬件通訊規(guī)則設(shè)計

      為保證Com口能與PLC正常通信,并控制PLC正確執(zhí)行接收到的指令,現(xiàn)定義硬件通信協(xié)議[4]如表1:

      考慮到通信主要是通過RS485直接對PLC的命令發(fā)送,故無需過多考慮信號的有效性和安全性檢驗。命令主要分三部分構(gòu)成:開始標志位+地址+動作。對于需要傳遞額外數(shù)據(jù)的(如LCD屏顯內(nèi)容),后面提供3字節(jié)的擴展,并且最后提供1字節(jié)的檢驗位,以控制傳輸?shù)臏蚀_性。

      為了區(qū)分多個命令,特指定十六進制FF為每一個命令的開始字節(jié)。地址位對應(yīng)著密集架的區(qū)號(區(qū)號從A開始,按ASC碼值依次增加)。動作位一般取用英文單詞的首字母小寫形式的ASC碼值。用戶可根據(jù)庫房的實際物理結(jié)構(gòu)和需要控制的動作,靈活設(shè)置相關(guān)命令。

      3 com串口通信實現(xiàn)

      將com串口通信的相關(guān)參數(shù)全部存放到app.config配置文件的appSettings配置節(jié)中。在服務(wù)啟動時,加載相關(guān)通信參數(shù),打開com串口,同時開啟Socket監(jiān)聽。在服務(wù)停止時關(guān)閉 com端口[5]和Socket監(jiān)聽。各參數(shù)的缺省值和含義如表2所示:

      表1 PLC通信協(xié)議規(guī)則表

      遵循組件模塊化設(shè)計原則,將不同的功能封裝到不同的類中。其類圖如圖2所示。其中主要的核心類功能描述如下:

      1)Com類通過調(diào)用API函數(shù),實現(xiàn)串口的打開、關(guān)閉、數(shù)據(jù)的發(fā)送、讀取等。

      2)ComMain主要按通信協(xié)議封裝命令,并判斷各操作命令以及參數(shù)的正確合法性。對于合法的命令,進行數(shù)制的轉(zhuǎn)化,然后通過Com類發(fā)送給PLC;對于有返回結(jié)果的,則返回相關(guān)參數(shù)給客戶端;同時記錄日志,向音頻輸出設(shè)置輸出當前正在做何操作。

      表2 com端口配置參數(shù)表

      3)SocketService類主要實現(xiàn)Socket監(jiān)聽,通過Socket與上層應(yīng)用程序交互,接收命令,解析命令,并調(diào)用ComMain中的相關(guān)業(yè)務(wù)方法實現(xiàn)控制。

      4)ComService,ProjectInstaller兩個類實現(xiàn) Windows服務(wù)的定制,安裝功能。

      5)Tools類提供一些通用的業(yè)務(wù)方法,這里主要實現(xiàn)日志記錄功能。

      圖2 系統(tǒng)類圖

      對于整個服務(wù)的運行流程圖如圖3所示:

      圖3 整體流程圖

      在服務(wù)安裝完成后,啟動服務(wù)時即按給定的參數(shù)初始化Com口,并打開Com串口;同時,Socket服務(wù)開始監(jiān)聽指定的端口(由IP、TcpPort兩個參數(shù)指定),接收指令數(shù)據(jù),并向Com串口按通信協(xié)議發(fā)送數(shù)據(jù)。

      其中ComMain.OperateComPort方法完成對接收數(shù)據(jù)的解析,解析出里面包含的操作命令、操作地址、密集架LCD屏顯內(nèi)容,并檢驗各參數(shù)的合法性,最后將命令數(shù)制轉(zhuǎn)化為二進制形式,通過Com串口發(fā)送到PLC控制。為增強服務(wù)可用性和完善性,特添加發(fā)音和日志記錄功能。其中發(fā)音功能通過調(diào)用SpeechLib.dll包實現(xiàn),日志記錄功能由 Tools類的WriteLog 方法實現(xiàn)[6]。

      OperateComPort方法是核心業(yè)務(wù)方法,實現(xiàn)對接受參數(shù)的制轉(zhuǎn)轉(zhuǎn)化,以及判斷各操作命令,以便向com口發(fā)送相應(yīng)的操作指令。其程序流程圖如下圖4:

      4 Socket服務(wù)監(jiān)聽

      Socket服務(wù)監(jiān)聽隨著Windows服務(wù)的啟動而開啟。為了提高性能,設(shè)計時采用異步通信方式。異步通信的優(yōu)點是不需要傳送同步脈沖,字符幀長度也不受到限制。

      Socket監(jiān)聽到請求,則開啟一個處理事務(wù),啟動接收回調(diào)函數(shù)ReceiveCallBack,ReceiveCallBack將處理接受到的消息,并傳遞給ReturnMessage方法。ReturnMessage進行參數(shù)解析,將解析到的各部分內(nèi)容傳遞給ComMain.OperateComPort方法以完成硬件控制。最后通過Send方法異步返回數(shù)據(jù)。其程序流程圖如下圖5:

      圖5 Socket服務(wù)監(jiān)聽程序流程圖

      5 結(jié)語

      為靈活的實現(xiàn)上層應(yīng)用程序與硬件的通信控制,本文以檔案館密集架為例,定義一套完整的硬件通信協(xié)議,并將控制程序以Windows服務(wù)方式部署,用Socket與外界程序?qū)崿F(xiàn)快速數(shù)據(jù)交換。該實現(xiàn)方案靈活穩(wěn)定,為檔案管理工作帶來很大的便利。

      [1] 曹衛(wèi)彬.C/C++串口通信典型應(yīng)用實例編程實踐[M].北京:電子工業(yè)出版社,2009:87-120.

      [2] 吳興中,歐青立.用Socket通訊技術(shù)實現(xiàn)公積金中心與交易登記中心數(shù)據(jù)安全交互[J].信息安全與技術(shù),2012(7):77-78.

      [3] 孫立婷,呂盼娘,汪靜姝.基于多線程的音頻設(shè)備上位機控制系統(tǒng)[J].計算機應(yīng)用與軟件,2011(10):216.

      [4] 陳荔,張菁.基于串口自定義協(xié)議傳輸文件的設(shè)計[J].計算機技術(shù)與發(fā)展,2012(2):47-48.

      [5] 彭偉.線程安全的.NET平臺串口通信程序設(shè)計研究[J].湖北工業(yè)大學學報,2012(2):35-36.

      [6] 鄭武,肖寶森.串口通信新模型的研究與 C#實現(xiàn)[J].電腦編程技巧與維護,2012(11):29-30.

      猜你喜歡
      通信協(xié)議監(jiān)聽流程圖
      千元監(jiān)聽風格Hi-Fi箱新選擇 Summer audio A-401
      基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設(shè)計
      網(wǎng)絡(luò)監(jiān)聽的防范措施
      電子制作(2017年20期)2017-04-26 06:58:02
      專利申請審批流程圖
      河南科技(2016年8期)2016-09-03 08:08:22
      專利申請審批流程圖
      河南科技(2016年6期)2016-08-13 08:18:29
      基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計與研究
      基于NS-3的PLC多頻通信協(xié)議仿真平臺設(shè)計與實現(xiàn)
      電測與儀表(2016年2期)2016-04-12 00:24:52
      應(yīng)召反潛時無人機監(jiān)聽航路的規(guī)劃
      寧??h村級權(quán)力清單36條
      RSSP-I、RSSP-Ⅱ及SAHARA三種安全通信協(xié)議實現(xiàn)技術(shù)簡介
      宿迁市| 武胜县| 塘沽区| 山阴县| 双鸭山市| 渑池县| 乐山市| 紫阳县| 新乐市| 镇赉县| 宁化县| 含山县| 厦门市| 吴川市| 延津县| 内乡县| 广昌县| 永嘉县| 林芝县| 万宁市| 确山县| 溧水县| 大厂| 襄汾县| 格尔木市| 沙雅县| 施秉县| 武隆县| 睢宁县| 米脂县| 和硕县| 宜阳县| 高阳县| 惠东县| 环江| 称多县| 福鼎市| 会宁县| 宁阳县| 青川县| 丰台区|