PC機與PLC在一卡通系統中的應用
文章出處:http://5052h112.com 作者: 人氣: 發表時間:2011年09月12日
摘要:本文對DVP 系列PLC 及射頻IC 卡通用讀卡模塊的通信協議進行了詳細的介紹,并以VB 為開發工具,實現了PC 機對讀卡器的采樣判斷,再由PC 實現與PLC 的通訊和控制。
關鍵詞:PLC ,一卡通系統, 串行通信, 讀卡器, VB6.0
1、前言
一卡通系統在樓宇智能化方面已經得到了廣泛的應用,對于安防、進出控制、身份識別等方面的技術日見成熟。通過PC 機實現對讀卡器的采樣及判斷,在由PC 機發出控制指令給PLC,實現考勤管理及智能門禁控制,以動態數據畫面、報表形式、文件共享等技術實現對辦公及住宅的安全實時管理。本文詳細介紹了125KHZ 射頻卡讀卡器及DVP 系列PLC的通訊協議,并在WINDOW 環境下使用VB 開發通訊,采樣,記錄及控制程序,實現PC 與讀卡器、PLC 之間通信.
2、PC 與125KHZ 射頻卡讀卡器的數據采樣
射頻IC 卡識別技術,通常由載有密碼的射頻IC 卡來代替鍵盤密碼,不可復制.讀卡模塊讀出密碼后,即產生輸出信號,將卡號送入PC 進行數據庫管理.
(1) 讀卡器通訊協議傳輸速率為9600bps,無奇偶校驗,數據位為8 位,1 個停止位.
(2) R232 數據格式
(3) 通信口初始化
Mscomm1.setting=”9600,N,8,1”
Mscomm1.comport=1
Mscomm1.input=0
Mscomm1.inputmode=cominputmodebinary
Mscomm1.rthreshold=11
Mscomm1.portopen=True
(4) 設置串口響應
Select Case Mscomm1.commevent
Case ComEvReceive
Dim buffer as Variant
Dim string(11) as string
Buffer=Mscomm1.inpu
Dim I as Interger
Dim Cardnumber as long
Cardnumber=CDec(buffer(7)*2^16+ buffer(8)*2^8+ buffer(9))
For I=0 to 10
StringBuf(I)=DecToHex(CDec(buffer(I)))
Next
Text1.Text = "數據:" & StringBuf(0) & StringBuf(1) & StringBuf(2) & StringBuf(3) _
& StringBuf(4) & StringBuf(5) & StringBuf(6) & StringBuf(7) & StringBuf(8) &
StringBuf(9) & StringBuf(10) & " 卡號:" & Str(CardNumber)
CardCode = Mid$(Text1.Text, 42)
End select
Function DecToHex(DecNumber As Integer) As String
If DecNumber <= 15 Then
DecToHex = " 0" & Hex(DecNumber)
Else: DecToHex = "" & Hex(DecNumber)
End If
End Function
進一步轉換成卡號,利用ODBC打開存有關于卡號內容的本地數據庫,對卡號進行判斷并記錄下合法卡號,當前時間及其他信息生成報表進行考勤管理和門禁控制.
3、PC 與DVP 系列PLC 的串行通訊
通過PC 的COM2 與DVP 系列PLC 的 RS-232C 端口連接,來實現控制
(1) DVP 系列PLC 的通信協議為ASCII 模式,9600 傳輸速度,偶同位,1 個起始位,1 個停止位.
(2)通訊資料格式
(3)接收命令
DVP 系列PLC 有讀命令,復位命令和強制命令,表中X-輸入繼電器,Y-輸出繼電器,M-輔助繼電器,S-狀態元件,T-定時器,C-計數器,D-數據寄存器.另外用于強制命令時,0XFF000 為線圈導通0X0000 為斷開
(4)PLC 裝置地址
(5)PLC 基本梯型圖
M1 由PC 發出通斷命令,當X1 閉合時,M1 閉合則電磁門鎖閉合,M1 斷開則電磁門鎖打開.當X1 斷開時PC 只執行考勤而對門禁不起作用.
(6)通信初始化及控制
Mscomm2.setting=”9600,E,7,1”
Mscomm2.comport=2
Mscomm2.inputmode=cominputmodetext
Mscomm2.portopen=True
Private sub sendon()
Mscomm2.output=”:01050801FF00F2”+chr$(13)+chr$(10)
End sub
Private sub sendoff()
Mscomm2.output=”:010508010000F1”+chr$(13)+chr$(10)
End sub
4、結束語
該系統已經成功的運用于考勤和門禁管理,程序設計簡明,且實現成本較低,可以通過互聯網絡進行遠程管理和控制,對其他型號的PLC 和讀卡器也有借鑒之處,在辦公管理自動化中非常有效。
作者簡介:楊文虎,男,1974 年出生,現為濟南鐵道職業技術學院講師 山東大學控制科學與工程在職研究生, 主要進行基于CAN 總線的遠程監控系統的研究與應用