999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Modbus協議的終端通訊系統的開發

2021-01-19 02:24:20王學華白志城申楷赟
計算機技術與發展 2021年1期
關鍵詞:程序系統

劉 鑫,王學華*,白志城,申楷赟,王 剛

(1.武漢工程大學 材料科學與工程學院,湖北 武漢 430205; 2.縱橫皆景(武漢)信息技術有限公司,湖北 武漢 430204)

0 引 言

智能泊車系統是將先進的圖像識別技術與工業自動化技術相結合[1-2],通過計算機的數據計算與圖像處理,對進出智能車庫車輛的存放、測量、收費、引導為一體的全方位管理系統[3]。該系統以用戶個人信息作為車輛出入車庫的憑證,用先進的激光雷達測距技術和高清號牌機獲取車輛信息[4],再通過控制裝置控制機械手將車輛抓取到托盤小車后引導至指定停車位,實現用戶的停取車需求。智能泊車庫因其穩定的通訊和強大的數據庫管理每一個用戶及其車輛的信息,解決了現有停車場存在的安全隱患[5]。

PLC因具有靈活性好、通用性強和性價比高等優點使其在工業自動化工程中應用廣泛[6]。在智能泊車庫中選用PLC為核心建立運動控制系統可以有效提高系統的自動化程度和安全性,但由于PLC單獨處理數據能力較差[7],所以需要與上位機結合彌補這些缺陷[8]。如PLC在操控激光雷達對目標物體與周邊信息進行感知與采集的過程中,PLC無法對相關數據進行處理,所以通過與上位機結合,建立可以實現數據交互的通訊模塊將數據傳輸到上位機進行處理。

PLC常用的通信協議有MPI、PROFIBUS、工業以太網以及串口通信等[9],其中基于工業以太網的Modbus通訊協議具有診斷能力強、數據傳輸量大、成本低等特點[10],主要用于對PLC寄存器中數據讀寫等操作,現已被眾多機械設備產品支持并使用[11],所以選用Modbus協議作為系統的通訊協議。而在PLC與終端機數據交互過程中,傳統的XML技術在Modbus數據解析上效率較低,因此在數據傳輸應用開發中引用Json技術將Modbus數據封裝成為Json對象,通過以太網傳輸可以有效提高傳輸效率。該文通過對Modbus協議和Json技術的解析,設計了一種以Modbus通信協議與Json技術為紐帶,利用上位機(終端機)與PLC進行數據傳輸實現車庫停取車功能的系統。

1 智能終端系統架構

1.1 系統架構

智能終端系統主要分為數據處理模塊、數據傳輸模塊和數據采集模塊。數據處理模塊主要是終端機,它的主要功能是發送和接收指令以及對系統信息進行處理。數據采集層主要有號牌機、激光雷達、地感線圈、光電傳感器等,它的主要功能是采集外部信息如車輛位置坐標、號牌等。數據傳輸模塊是數據采集模塊與數據處理模塊進行數據交互的重要媒介。在實際應用中由于用戶可以操作多臺終端機,所以PLC需要通過以太網接入交換機,通過交換機可同時與多臺終端機進行數據傳輸且互不干擾。通訊流程為用戶在終端機上輸入指令,指令通過數據交互模塊發送至PLC,PLC對指令進行分析處理后,操控數據采集層開始數據采集并將數據傳送至終端機,實現了終端機與PLC之間的數據傳輸。系統數據傳輸的架構如圖1所示。

1.2 智能終端功能

自助終端機是用戶在智能泊車庫中完成車輛停取的主要操作設備。作為無人值守的自動泊車終端系統需具備以下主要功能:停車功能、取車功能和支付功能。

停車功能主要包括用戶信息認證、車輛信息讀取與數據庫數據同步等。用戶將車輛駛進停車場后,在終端機上選擇停車操作,輸入賬戶信息,終端機系統進行用戶和車輛信息驗證,驗證通過后打印停車憑條,發出停車動作指令,泊車系統自動完成停車操作。

圖1 智能終端數據傳輸系統架構

取車功能主要是驗證用戶信息以取出車輛。用戶只需將停車憑條放在終端機上的掃描設備進行識別[12],終端系統根據掃碼信息進行身份認證,認證通過則可以取出車輛,并顯示停車時長和費用。

支付功能主要用于完成取車費用的支付和發送道閘動作指令。取車信息驗證通過后,終端顯示支付界面,用戶完成支付后,終端發送支付完成信息和道閘動作指令,泊車系統隨即會將車輛取至待取區域,用戶即可將車輛駛出車庫,完成取車過程。

2 Modbus協議的Json格式

Modbus通訊協議是一種應用層協議,連接在不同網絡設備之間提供服務器與客戶端通信,其具有支持串口(主要是RS-485總線)和以太網的功能,協議包括Modbus RTU,Modbus ASCII和Modbus TCP三種[13]。該系統采用基于以太網的Modbus TCP協議,屬于客戶端/服務器模式進行通信,客戶端發出數據請求消息,服務端收到消息后就發送數據到客戶端以響應請求,客戶端確定了服務端響應后表示連接已建立。

Modbus TCP數據結構如圖2所示,基于TCP/IP協議的Modbus數據格式包含通信報頭和協議數據單元。通信報頭包含事務標識符(2字節)、協議標識符(2字節)、長度(2字節)和單元標識(1字節),事務標識符在每次通信完成會進行累加以區別不同的通信報文;由于該文采用的是Modbus TCP協議,所以協議標識為0×0000;長度表示數據長度,單位為字節;單元標識符代表設備地址,該文擬用0×02作為終端標識。而協議數據單元包括功能碼(1字節)和數據集(n字節),功能碼用于指出要求進行的操作,該文主要運用功能碼0×03和0×04,0×03代表讀取寄存器數據,0×04代表在指定地址寄存器中寫入數據;數據集即傳輸數據是一個可變字段,每個字節8 bit,字段長短根據數據大小決定。

圖2 Modbus TCP消息幀的數據結構

Json對象的數據結構為鍵值對結構,即“key/value”集合。key為對象的屬性,可以是數據類型,也可以是一個數組,而value表示其對應的值,該文采用的Json格式表示為:

{"terminal”:“0001”,

“status”:“0001” ,

“Parking allowed”:“ 0002”,

“Voucher number”:“1423”,

“Parking fee”:“0034"}

從以上結構可以看出,Json格式適用于本系統Modbus協議指令的數據格式,合理地使用Json處理終端機與PLC之間傳輸的數據,可以有效提高Modbus協議的通訊效率,并且可以簡化應用程序的開發。

3 通訊程序設計

終端機上的通訊程序主要完成以下任務:初始化通訊程序、發送通訊請求、檢驗數據幀是否正確、執行讀寫指令、接收返回結果。程序流程為:終端機主動聯絡PLC,首先初始化通信模塊,然后發送握手信號,其中包括IP地址、端口號等,PLC接收到地址后會先與本身IP比較,如果地址無誤則回應終端機確認連接,當終端機接收到PLC確認信息后,則表示通信已經建立,同時可以讀寫PLC寄存器中的數據,通訊流程如圖3所示。

3.1 終端機通訊程序

3.1.1 連接PLC

因為泊車庫設備采用以太網互聯,所以需要根據PLC配置設置參數。在連接程序中,網關的IP參數設為127.0.0.1,端口號為502,同時回調函數返回連接狀態值,程序如下:

IPAddress[]IpAdd=Dns.GetHostAddresses ("127.0.0.1");// IP地址

IPEndPoint joint=new IPEndPoint(Ip Add[1],502) ;//端口號

AsyncCallback Value=new AsyncCal lback (ConnectCallback1);//回調函數

AsyncResult connResult =s1.Begin Co nnect(joint,callback,s1);

connResult.AsyncWaitHandle.WaitOne(50,true);

該網關可以自動診斷與PLC的連接,終端程序會定時發送報文至PLC,PLC則會發送返回值以確定連接正常。設定時間為50 ms,如果終端程序沒有接收到檢測數據,則表示通信連接異常。如果連接正常,便可以進行讀寫操作。

圖3 通訊流程

3.1.2 讀取寄存器

對PLC寄存器中指定地址的DB塊進行數據讀寫需要指定地址和讀取數據長度,根據通信協議發送和讀取指定格式數據,并轉成文本格式保存在本地。

OperateResultread=busTcpClient.ReadRegister(DBaddress, Length);讀取數據

if (read.IsSuccess)

{

Value_List.Text = "";

String returned_value=ByteToHexString (re ad.Content);

}

else

{

toolStripStatusLabel1.Text="讀取失?。?+read.ToMessageShowString();}

3.1.3 寫入寄存器

PLC_Write_value Retured_value_write=DeserializeJsonToObject (Str);

writeResultRender(busTcpClient.WriteRegister(ushort.Parse(Retured_value_write.Adress),short.Parse(Retured_value_write.Value));

Retured_value_write.Adress);寫入數據

3.1.4 轉Json格式

ArrayList array=GetSeparateSubString(str, 4);

int Read_adress=Convert.ToInt32(addr ss);

Retured_v.Clear();

foreach (string arr in array)

{

PLC_Retured_value Retured_value=new PLC_Retured_value();

Value_List.Text +="DB地址" + Read_adress + ": "+ arr + " ";

Retured_value.Adress=Read_adress. ToStri ng();

Retured_value.Value=arr;//實體集合序列化和反序列化

Retured_v.Add(Retured_value);

Read_adress++;

}

3.2 PLC通信程序

該系統PLC選用西門子S7-1200系列,S7-1200系列PLC采用模塊化結構,各模塊都具有很好的可擴展性,可搭載中央處理器(CPU)、電源、I/O模塊以及通訊模塊[14]。博途(TIA)是西門子工業常用的集成自動化軟件,可對PLC進行組態、編程和調試。以太網連接設備后,使用TIA V14軟件找尋到PLC設備,選中PLC點擊下載硬件和軟件信息,PG/PC接口類型選擇PN/IE[15]。初始化PLC,在通信模塊中選擇MODBUS_SERVER功能塊,并添加至PLC程序集,并按圖4所示的方式設置通訊參數和數據塊。

圖4 Modbus通信模塊

在PLC程序中添加DB塊,定義了終端機與PLC需要傳輸的數據,其中數據名稱、數據類型和偏移量等如表1所示,終端機程序可以通過地址和偏移量讀寫這些數據值。

表1 PLC中DB塊的數據結構

4 數據通訊測試

4.1 單組數據通訊測試

在搭載Windows 64位操作系統的計算機上進行開發與通訊測試,系統測試在無干擾的環境下進行。在測試過程中,使用Modbus Slave軟件模擬現場PLC情況,在Modbus Slave上添加數據內容,根據表1定義的數據名稱及大小如圖5所示,同時選擇連接方式為Modbus TCP/IP,設定IP地址為127.0.0.1,端口號為502。終端程序通過與Modbus Slave軟件連接,通過讀寫表中數據測試通訊程序性能。

圖5 Modbus Slave數據界面

在通訊程序上輸入IP地址和端口號,運行程序后與Modbus Slave建立連接,由于有18個模擬數據,所以在程序上設定DB塊地址為0~17位,設定讀取時間間隔為100 ms,得出讀寫數據結果。通訊程序中,利用Stopwatch函數計算出讀寫數據時間,通過多次反復測試,測試結果如表2所示。

表2 單組數據通訊測試結果

4.2 多組數據通訊測試

多組數據通訊測試是在單組數據通訊測試基礎上,在Modbus Slave上更改數據類型與數據值,同時更改通訊數據量,在相同的環境下進行測試。設定五組數據,每組測試數據取50次測試的平均值,測試結果如表3所示。從統計結果可以看出,在通訊數據不同的情況下,通訊程序的讀寫操作誤差為0,單次讀寫時間誤差不超過1 ms,并且程序運行過程中占用計算機內存不超過40 MB。

表3 多組數據通訊測試統計

5 結束語

通過對ModbusTCP協議的解析,采用C#編程語言開發了基于ModbusTCP通信協議的終端通訊系統,并對ModbusTCP通訊數據封裝成Json格式傳輸,實現了終端機與PLC之間的實時通訊和數據傳輸。該系統在與Modbus Slave軟件測試結果表明,數據量在150個以內終端通訊系統通信正常、運行穩定,驗證了系統的可行性,達到了技術指標。

猜你喜歡
程序系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
半沸制皂系統(下)
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
主站蜘蛛池模板: 国产又粗又猛又爽视频| 99久久亚洲综合精品TS| 97久久精品人人| 亚洲无码91视频| 一本久道热中字伊人| 国产精品va| 亚洲精品视频免费| 四虎综合网| 国产午夜精品一区二区三| 国产9191精品免费观看| 国产91小视频| 精品国产电影久久九九| 精品剧情v国产在线观看| 播五月综合| 麻豆国产原创视频在线播放| 啊嗯不日本网站| 亚洲嫩模喷白浆| 午夜三级在线| 亚洲品质国产精品无码| 亚洲国产看片基地久久1024| 亚洲视频在线青青| 成人在线不卡视频| 国产欧美在线观看一区| 丁香婷婷综合激情| 亚洲无码37.| 日韩精品视频久久| 国产AV毛片| 亚洲国产综合第一精品小说| 国产丝袜啪啪| 九九热精品在线视频| 亚洲精品无码高潮喷水A| 欧美激情成人网| 国产99视频在线| 99精品一区二区免费视频| 精品成人一区二区| AV熟女乱| 国产成人高清亚洲一区久久| www.91在线播放| 国产精品视频导航| 99re在线观看视频| 欧美成人A视频| 麻豆国产精品一二三在线观看| 国产精品性| 国产精品熟女亚洲AV麻豆| 欧美中文字幕在线视频| 女同国产精品一区二区| 青青草国产精品久久久久| 久草视频一区| 久久午夜夜伦鲁鲁片无码免费| 91无码人妻精品一区| 免费看av在线网站网址| 色综合中文| 国产麻豆福利av在线播放| 波多野结衣一二三| 天天操精品| 永久成人无码激情视频免费| 日韩欧美成人高清在线观看| 亚洲AV免费一区二区三区| 亚洲第一极品精品无码| www.99在线观看| 亚洲—日韩aV在线| 欧美亚洲国产日韩电影在线| 日本精品视频| 一级成人a做片免费| 亚洲美女操| 在线国产毛片| 日韩免费无码人妻系列| 亚洲精品视频在线观看视频| 中文字幕av无码不卡免费 | 99久久国产综合精品女同 | 91久久偷偷做嫩草影院| 亚洲欧美日韩中文字幕在线| 精品国产99久久| 国产一级毛片网站| 嫩草国产在线| 亚洲精品爱草草视频在线| 依依成人精品无v国产| 色婷婷成人| 丁香婷婷久久| 国产精品无码AV片在线观看播放| 亚洲浓毛av| 少妇被粗大的猛烈进出免费视频|