• 
    

    
    

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

      ?

      基于Modbus-TCP協(xié)議的S7-1200 PLC與RFID射頻讀寫器通信程序設計

      2023-01-13 00:32:14陳元凱蓋超會谷玉玲
      關鍵詞:輪詢功能測試IC卡

      陳元凱 蓋超會 谷玉玲

      (武漢軟件工程職業(yè)學院 電子工程學院 湖北 武漢:430205)

      Modbus-TCP通信協(xié)議是一種已廣泛應用于當今工業(yè)控制領域的通用通信協(xié)議。通過此協(xié)議,控制器經(jīng)由網(wǎng)絡(如以太網(wǎng))可以和其它設備之間進行數(shù)據(jù)通信。Siemens S7-1200 PLC作為一種高可靠性的控制器,通過與RFID射頻讀寫器進行數(shù)據(jù)通信實現(xiàn)IC卡數(shù)據(jù)的讀寫,不但可以實現(xiàn)對生產(chǎn)過程的精準控制,更能實現(xiàn)對用戶數(shù)據(jù)的實時管理。本文從Modbus-TCP通信協(xié)議以及RFID讀寫器的功能入手,詳細介紹了PLC與RFID讀寫器之間的讀取與寫入數(shù)據(jù)的程序編寫與調(diào)試方法。

      1 Modbus_TCP通信協(xié)議概述

      Modbus/TCP是簡單的、中立廠商的用于管理和控制自動化設備的Modbus系列通信協(xié)議的派生產(chǎn)品,它覆蓋了使用TCP/IP協(xié)議的“Intranet”和“Internet”環(huán)境中Modbus報文的用途。協(xié)議的最通用用途是為諸如PLC、I/O模塊以及連接其它簡單域總線或I/O模塊的網(wǎng)關服務的。

      Modbus/TCP 使Modbus_RTU協(xié)議運行于以太網(wǎng),Modbus TCP使用TCP/IP和以太網(wǎng)在站點間傳送Modbus報文,Modbus/TCP結(jié)合了以太網(wǎng)物理網(wǎng)絡和網(wǎng)絡標準TCP/IP以及以Modbus作為應用協(xié)議標準的數(shù)據(jù)表示方法[1]。Modbus/TCP通信報文被封裝于以太網(wǎng)TCP/IP數(shù)據(jù)包中。與傳統(tǒng)的串口方式,Modbus/TCP插入一個標準的Modbus報文到TCP報文中,不再帶有數(shù)據(jù)校驗和地址。

      Modbus數(shù)據(jù)在TCP/IP以太網(wǎng)上傳輸,支持Ethernet II和802.3兩種幀格式,Modbus TCP數(shù)據(jù)幀包含報文頭、功能代碼和數(shù)據(jù)3部分[2]。MBAP報文頭(MBAP、Modbus Application Protocol、Modbus應用協(xié)議)分4個域,共7個字節(jié),如圖1所示。

      2 C-11HMRW型RFID射頻讀寫器功能及寄存器說明

      RFID讀寫器(Radio Frequency Identification的縮寫)即無線射頻識別,是一種非接觸式的自動識別技術,其基本原理是利用射頻信號和空間耦合(電感或電磁耦合)或雷達反射的傳輸特性,實現(xiàn)對被識別物體的自動識別。通過天線與RFID電子標簽進行無線通信,可以實現(xiàn)對標簽識別碼和內(nèi)存數(shù)據(jù)的讀出或?qū)懭氩僮鱗3]。典型的RFID讀寫器包含有RFID射頻模塊(發(fā)送器和接收器)、控制單元以及天線,IC-11HMRW型RFID射頻讀寫器如圖2所示。

      圖1 Modbus_TCP的數(shù)據(jù)幀

      圖2 IC-11HMRW型RFID射頻讀寫器

      RFID射頻讀寫器讀寫器在Modbus-TCP通信中作為服務端監(jiān)聽設備端口,當有客戶端連接請求時響應并創(chuàng)建連接。讀寫器設備的默認端口號為39169,默認站號為2,IC-11HMRW型RFID射頻讀寫器的部分寄存器地址功能說明如表1所示。

      表1 RFID射頻讀寫器的部分寄存器地址

      3 S7-1200 PLC與RFID射頻讀寫器通信要求

      3.1 網(wǎng)絡結(jié)構(gòu)要求

      網(wǎng)絡結(jié)構(gòu)要求利用工業(yè)以太網(wǎng)線纜,按照圖3所示的網(wǎng)絡結(jié)構(gòu)邏輯拓撲圖將交換機、上位機、RFID讀寫器與S7-1200連接起來并設置好相應的IP地址。

      圖3 網(wǎng)絡結(jié)構(gòu)圖

      3.2 讀IC卡要求

      在RFID讀寫器上讀IC卡,當RFID讀寫器檢測到有卡時點亮PLC的Q0.1,無卡時熄滅。同時利用S7-1200 PLC的讀取操作將IC卡中0010~0013(40011~40014)4個寄存器中存儲的數(shù)據(jù)讀取到S7-1200 PLC的DB塊數(shù)組中進行保存。

      3.3 寫IC卡要求

      在RFID讀寫器上寫IC卡,需將4組16進制數(shù)1234、5678、9ABC、DEF0分別寫入到IC卡中0010~0013(40011~40014)4個寄存器中。寫入完成后再立即用RFID讀卡操作讀取IC卡中的數(shù)據(jù)。

      4 S7-1200 PLC與RFID射頻讀寫器PLC程序設計

      4.1 程序設計流程

      依據(jù)系統(tǒng)要求,PLC與RFID射頻讀寫器的通信程序主要分為IC卡讀操作與IC卡寫操作兩大部分,同時IC卡讀操作到卡寫操作的過程需要通過手動切換,而IC卡寫操作到IC卡讀操作則需自動切換,故根據(jù)RFID射頻讀寫器功能及寄存器說明設計PLC通信程序,PLC程序設計流程如圖4所示。

      圖4 PLC程序設計流程

      4.2 全局DB塊創(chuàng)建

      (1)在TIA博途軟件中創(chuàng)建名為“RFID數(shù)據(jù)讀取及寫入”工程,添加硬件后分別創(chuàng)建名為“IC卡讀取”和“IC卡寫入”的FC功能塊。

      (2)向工程中創(chuàng)建一個名為“connect”的全局DB數(shù)據(jù)塊,用于存儲連接數(shù)據(jù)和通信數(shù)據(jù),并在該數(shù)據(jù)塊的屬性中取消其“優(yōu)化塊訪問”。

      (3)向“connect”數(shù)據(jù)塊中添加兩個4字節(jié)數(shù)組、5個字節(jié)變量及1個TCON_IP_v4變量,數(shù)組分別命名為“receive”和“send”,“receive”數(shù)組用于接收RFID讀寫器的數(shù)據(jù),“send”數(shù)組用于向RFID讀寫器發(fā)送數(shù)據(jù),5個字節(jié)變量分別命名為“Answer1”、“Answer2”、“Answer3”、“Request1”和“Request2”,TCON_IP_v4變量命名為“IP”用于存儲Modbus TCP連接端口及地址,“connect”數(shù)據(jù)塊數(shù)據(jù)添加如圖5所示。

      圖5 “connect”數(shù)據(jù)塊數(shù)據(jù)添加

      系統(tǒng)要求利用RFID讀寫器向IC卡中寫入16進制1234、5678、9ABC、DEF0四個數(shù)據(jù),故相應的設置“send”數(shù)組的4個字節(jié)的初值。設置Request1和Request2的初值分別為16#8和16#4,這兩個字節(jié)用于向RFID讀寫器提出請求。設置TCON_IP_v4變量中“InterfaceID”、“ID”、“ADDR[1]”、“ADDR[2]”、“ADDR[3]”、“ADDR[4]”、“RemotePort”、“LocalPort”的初值分別為64、16#01、192、168、0、242、39169和0,其中ADDR[1]~ADDR[4]為遠程通信對象IP地址的4個字節(jié),RemotePort為遠程通信對象即RFID讀寫器的端口號,LocalPort為PLC本地端口號。

      4.3 Main函數(shù)程序編寫

      在主程序中調(diào)用“IC卡讀取”和“IC卡寫入”FC功能塊,并通過同一觸點連接,實現(xiàn)IC卡讀取與寫入操作的切換,根據(jù)系統(tǒng)要求,默認為IC卡讀取狀態(tài),僅當觸發(fā)IC卡寫入時才切換至寫入狀態(tài),故設置M6.0作為IC卡讀取操作與IC卡寫入操作的切換開關,Main函數(shù)如圖6所示。

      圖6 Main函數(shù)程序

      4.4 “IC卡讀取”功能塊程序編寫

      4.4.1 MB_CLIENT指令塊

      在本例中RFID讀寫器作為服務端,S7-1200 PLC作為客戶端。在程序中添加Modbus TCP客戶端通信指令MB_CLIENT,該指令用于通過PROFINET在客戶端和服務器之間建立連接、發(fā)送Modbus請求、接收響應并控制Modbus TCP客戶端的連接終端。需要注意的是Modbus查詢開始后,背景數(shù)據(jù)塊將鎖定,其它客戶端無法使用,因此與Modbus RTU類似,MB_CLIENT需利用輪詢操作實現(xiàn)同一指令多次調(diào)用的遍歷[4]。

      4.4.2 判斷RFID讀寫器上是否有IC卡

      根據(jù)前文的介紹,當讀取到00007寄存器(地址為40008)的第四位為1時,即表示有IC卡在RFID讀寫器的在感應區(qū),故在FC1“IC卡讀取”功能塊中編寫程序判斷是否有卡,IC卡判斷程序如圖7所示。

      其中當M100.0觸發(fā)后PLC從00007寄存器讀取長度為1個字節(jié)的數(shù)據(jù)并將其保存在DB2.DBW8中。由于讀取到00007寄存器(地址為40008)的第四位為1時表示有卡,故可利用讀取到的DB2.DBW8與16#0010進行比較,當讀寫器上有卡時點亮指示燈Q0.1。

      MB_CLIENT指令需利用輪詢操作實現(xiàn)同一指令多次調(diào)用的遍歷,故利用MB_CLIENT指令的完成位及錯誤位觸發(fā)TP脈沖定時器500毫秒的延時后復位當前讀取操作的REQ請求位并置位下一操作的REQ請求位[5]。

      圖7 IC卡判斷程序

      4.4.3 請求讀取第一操作空間指定數(shù)據(jù)區(qū)域

      根據(jù)程序編寫流程,在讀取IC卡的數(shù)據(jù)前需向00007寄存器(地址40008)寫入16#0008進行數(shù)據(jù)讀取請求,待00007寄存器回復16#0012后方可執(zhí)行IC卡數(shù)據(jù)的讀取操作,故讀取第一操作空間時需利用MB_CLIENT指令向地址40008執(zhí)行寫操作,然后再對地址40008執(zhí)行讀操作,讀取第一操作空間指定數(shù)據(jù)區(qū)域請求程序如圖8所示。

      圖8 讀取第一操作空間指定數(shù)據(jù)區(qū)域請求程序

      4.4.4 讀取指定區(qū)域數(shù)據(jù)

      在數(shù)據(jù)讀取請求得到回復后便可讀取4個寄存器中的數(shù)據(jù),輪詢觸發(fā)M100.3后,PLC讀取從40011開始的4個寄存器中的數(shù)據(jù)保存到從DB2.DBW0開始的4個字中。需要的注意的是由于輪詢控制算法是實現(xiàn)數(shù)據(jù)讀寫操作的輪流循環(huán),故在最后一步讀數(shù)據(jù)操作結(jié)束后再次置位第一步讀卡操作中的請求位,以實現(xiàn)輪詢控制[6]。

      4.5 “IC卡寫入”功能塊程序編寫

      4.5.1 IC卡數(shù)據(jù)寫入

      根據(jù)系統(tǒng)要求,需將4組16進制數(shù)分別寫入到IC卡中4個寄存器中,由于這4組16進制數(shù)保存在DB2.DBW14開始的4個字的初值中,故在FC2“IC卡寫入”功能塊中添加寫操作指令,當手動觸發(fā)寫操作按鈕M100.4后便可將這4個字臨時存儲到40011開始的4個寄存器中,同時利用輪詢控制算法觸發(fā)下一步使能數(shù)據(jù)入卡操作。注意此時的寫入僅是臨時存儲,只有激活使能后才能使數(shù)據(jù)保存到IC卡中。

      要使數(shù)據(jù)存入卡中需向40008寄存器中寫入16#0004,使能數(shù)據(jù)存儲操作。故利用輪詢觸發(fā)寫操作指令將存儲16#0004數(shù)據(jù)的DB2.DBW24寫入到40008中,使能數(shù)據(jù)存入到IC卡,IC卡數(shù)據(jù)寫入程序如圖9所示。

      圖9 IC卡數(shù)據(jù)寫入程序

      4.5.2 讀取返回值,判斷是否寫入成功

      數(shù)據(jù)存儲并使能完成后需繼續(xù)讀取40008寄存器的回復值,若回復為16#0011即為數(shù)據(jù)寫入成功。利用讀操作指令,將40008寄存器的值讀取到DB2.DBW12中,若返回值為16#0011則通過比較指令觸發(fā)寫入操作完成,即完成IC卡寫操作。IC卡寫操作完成后需自動切換至IC卡讀取狀態(tài),故輪詢控制的最后一步需復位IC卡寫切換開關M6.0,使系統(tǒng)自動切換至IC卡讀取功能塊。

      5 功能測試

      5.1 IC卡讀取功能測試

      在RFID讀寫器上放置一張有數(shù)據(jù)的IC卡,監(jiān)視DB塊中receive接收數(shù)組及應答回復字Answer1和Answer2,此時能夠從數(shù)組中讀取到數(shù)據(jù),且應答回復字均為16#0012,即表示此時RFID讀寫器上有卡,且卡內(nèi)40011到40014寄存器內(nèi)有數(shù)據(jù),IC卡讀取功能測試如圖10所示。

      5.2 IC卡寫入功能測試

      IC卡數(shù)據(jù)讀取完成后啟用IC卡寫入功能,將默認send數(shù)組中的4個16進制數(shù)寫入到卡中,寫入完成后系統(tǒng)自動切換回IC讀取功能,再次監(jiān)視DB塊中receive接收數(shù)組及應答回復字Answer1和Answer2,此時從數(shù)組中讀取到的數(shù)據(jù)即為IC卡寫入的數(shù)據(jù),即IC卡寫入功能測試成功,IC卡寫功能測試如圖11所示。

      6 結(jié)束語

      本文針對IC-11HMRW型RFID射頻讀寫器,詳細闡述了Siemens S7-1200 PLC與RFID讀寫器進行以太網(wǎng)通信實現(xiàn)IC卡讀操作和寫操作的程序設計方法,并在TIA博途軟件中進行了仿真調(diào)試。實踐證明該系統(tǒng)運行穩(wěn)定、程序設計方案可行。

      圖10 IC卡讀取功能測試

      圖11 IC卡寫功能測試

      猜你喜歡
      輪詢功能測試IC卡
      某內(nèi)花鍵等速傳動軸八功能測試夾具設計
      工商業(yè)IC卡控制器改造為物聯(lián)網(wǎng)控制器實踐
      在用電梯加裝外接式IC卡運行控制系統(tǒng)設計改進
      基于等概率的ASON業(yè)務授權(quán)設計?
      一種新的無觸點IC卡的檢測方法
      電子測試(2017年15期)2017-12-18 07:19:05
      汽車儀表HMI功能測試介紹
      依托站點狀態(tài)的兩級輪詢控制系統(tǒng)時延特性分析
      自動化學報(2016年8期)2016-04-16 03:38:56
      利用時間輪詢方式操作DDR3實現(xiàn)多模式下數(shù)據(jù)重排
      人事薪資管理系統(tǒng)軟件測試方案研究
      民用飛機機載電子硬件測試策略研究
      科技視界(2015年27期)2015-10-08 12:34:04
      黔西| 阳新县| 土默特右旗| 千阳县| 富蕴县| 东安县| 绥中县| 印江| 昌平区| 望谟县| 佛学| 南丹县| 隆安县| 长汀县| 岱山县| 九龙城区| 黄骅市| 辰溪县| 中超| 太康县| 镇安县| 富蕴县| 宁乡县| 峨边| 临漳县| 尤溪县| 任丘市| 凤冈县| 黄平县| 丰台区| 开平市| 剑川县| 昌都县| 仁布县| 枝江市| 建水县| 阳山县| 揭西县| 班玛县| 万年县| 崇阳县|