莫冰1,2,,劉長江2
(1.四川理工學(xué)院 自動化與信息工程學(xué)院, 四川 自貢 643000;2.四川理工學(xué)院 數(shù)學(xué)與統(tǒng)計學(xué)院, 四川 自貢 643000)
摘要:西門子S7-300可編程邏輯控制器(Programmable Logic Controller,PLC)在工業(yè)控制系統(tǒng)中有較為廣泛的應(yīng)用,,但一直以來缺少密碼鎖方面的相關(guān)研究,。針對西門子S7300 PLC控制的相關(guān)工業(yè)設(shè)備,設(shè)計了一類內(nèi)嵌式電子密碼鎖系統(tǒng),,并將該系統(tǒng)的解密與設(shè)密與PLC控制原理相結(jié)合,,使其能直接應(yīng)用于工業(yè)設(shè)備,從而實現(xiàn)設(shè)備的防盜功能,。最后,,采用軟件STEP 7 SIMATIC對密碼鎖系統(tǒng)進(jìn)行編程和測試,其仿真結(jié)果表明密碼鎖的功能是可靠且有效的,。
關(guān)鍵詞:密碼鎖,;PLC;STEP 7 SIMATIC,;S7-300
中圖分類號:TP277文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.10.003
引用格式:莫冰,,劉長江.基于西門子S7-300 PLC的電子密碼鎖系統(tǒng)設(shè)計[J].微型機與應(yīng)用,2017,36(10):7-10,14.
0引言
*基金項目:四川省人工智能重點實驗室資助項目(2014RZY02),;四川省橋梁無損檢測與工程計算重點實驗室資助項目(2014QZY01)
縱觀密碼鎖的悠久歷史,,其種類繁多,從機械密碼鎖發(fā)展到如今功能齊全的電子密碼鎖,。電子密碼鎖以其自身的優(yōu)點被人們所廣泛關(guān)注和使用,。其特點如下。
?。?)保密性能好,,隨機輸入成功率極低,避免資料的丟失和財產(chǎn)的流失,。
?。?)密碼可以隨時更改,防止密碼被盜,。
?。?)比機械鎖零件少,減少人為的磨損,。
?。?)使用方便靈活,,不需要佩帶鑰匙來開鎖[1]。
如今,,在工業(yè)和工程領(lǐng)域中,,因其自身的易操作性,PLC被廣泛使用在工業(yè)過程控制中,。但是在一些大型的PLC工業(yè)整體系統(tǒng)中,,由于非專業(yè)操作員的不當(dāng)使用以及PLC程序的泄露,導(dǎo)致經(jīng)濟效益下降和財產(chǎn)的損失,,產(chǎn)生了諸多不安全性因素,,所以本文提出一種基于PLC的密碼鎖設(shè)計,該設(shè)計應(yīng)用于PLC所處的工業(yè)領(lǐng)域的防盜中,,可以大大加強管控力度,,保證系統(tǒng)的安全運行,提高工廠的經(jīng)濟效益,。
但是工業(yè)領(lǐng)域中將密碼鎖嵌入到PLC中用于防盜的案例實在太少,,為了填補其空缺,本文采用德國西門子S7300 PLC來實現(xiàn)密碼的設(shè)定和解鎖功能,,其結(jié)構(gòu)簡單,且故障率低,。
S7300系列PLC采用模塊化結(jié)構(gòu)[2],適用于輸入/輸出(I/O)點數(shù)在1 000左右的集中或分布式控制系統(tǒng),,一般由中央處理單元(CPU),、輸入信號模塊、輸出模塊,、電源模塊,、通信模塊、接口模塊和功能模塊等組成[3],,其中最基本的S7300 PLC系統(tǒng)只需中央處理單元、電源模塊以及輸入輸出模塊組成,。在模塊的安裝方面也有一些規(guī)定,,第一號槽位是電源模塊,第二號槽位是中央處理器模塊,,第三號槽位是接口模塊,,接下來的模塊可以自由分配接上即可[4]。
本文采用STEP 7 SIMATIC軟件結(jié)合S7300 PLC芯片,,仿真出密碼鎖的部分功能,。STEP7 SIMATIC V5.5軟件是德國西門子公司針對S7300/400 PLC所研發(fā)的一款支持中文及多個國家語言的編程軟件[5],本文采用此編程軟件對密碼鎖的部分功能進(jìn)行仿真,。
目前,,PLC技術(shù)已經(jīng)被廣泛應(yīng)用于機械制造,、能源、交通運輸及文化娛樂等行業(yè)中,。隨著其進(jìn)一步發(fā)展,,PLC必將滲透到生活中的每個角落[68]。對密碼鎖和以太網(wǎng)結(jié)合技術(shù)的深入研究也會給生活中各領(lǐng)域的防盜帶來極大的改善,。
1問題描述
1.1控制原理
本文設(shè)計的密碼鎖系統(tǒng)主要包括開鎖和設(shè)密碼兩個部分,。在開鎖環(huán)節(jié),進(jìn)行輸入數(shù)字的判斷以及輸入位數(shù)的判斷,,本文采用四位密碼輸入的形式,,當(dāng)依次輸入的數(shù)字與設(shè)定的密碼完全一致時,實現(xiàn)開鎖,,否則開鎖失?。涣硗庠诖谁h(huán)節(jié)還增加了超時自鎖功能,,當(dāng)用戶超過某一時間不輸入密碼,,鍵盤將自動加鎖;在設(shè)密碼環(huán)節(jié),,依次輸入要設(shè)置的密碼即可,,按下確定鍵即實現(xiàn)密碼的設(shè)置,同時密碼已重置,。同樣在此環(huán)節(jié),,用戶沒有在規(guī)定時間重置密碼,鍵盤將自動加鎖,。
1.2結(jié)構(gòu)和符號表
基于西門子S7300PLC控制的密碼鎖結(jié)構(gòu)的外部接線圖如圖1所示,。
由圖1可知,本文采用15個按鍵輸入和6個指示燈作為輸出,,可以清楚地看出密碼解鎖和設(shè)密的整個過程,。
用PLC進(jìn)行仿真,必須將按鍵和指示燈轉(zhuǎn)化為大家熟知的按鈕,,這就必須將其符號表[9]導(dǎo)入程序中進(jìn)行仿真,,本文的PLC密碼鎖的符號表如表1所示。
2軟件設(shè)計
2.1功能模塊FC1
功能塊FC1主要描述開鎖的程序,,利用PLC的內(nèi)部存儲器標(biāo)志位存儲器區(qū)(M區(qū)),,賦予0~9不同的地址,詳情可見文獻(xiàn)[10],。由于0~9的程序非常相似,,以下只列出按鍵0的程序:
A(
O "0"
O M 11.0
)
AN "密碼正確"
AN"密碼錯誤"
AN"取消"
= M 11.0
以上程序表明,當(dāng)密碼正確(Q11.1燈亮)和密碼錯誤(Q11.2燈亮)任意一個有效的時候,,按鍵0~9均無效,,而當(dāng)取消按鍵按下時,,0~9也均無效。
接下來的工作就是判斷輸入的位數(shù)是否滿足設(shè)定的位數(shù)要求,,利用一個加法計數(shù)器,,每當(dāng)0~9的按鍵按下時,都會加1,,按下取消按鍵則給計數(shù)器清零,。
如何判斷輸入是否正確是開鎖過程中最重要的部分,在OB1主程序中設(shè)定初值地址MW0,、MW2,、MW4、MW6四個初值,,詳情可見文獻(xiàn)[11],。在FC1模塊中設(shè)定四個變量地址,即0~9按鍵按下時的數(shù)轉(zhuǎn)化為十六進(jìn)制的數(shù)所存放的變量地址,,分別為MW30,、MW32、MW34,、MW36,,主要程序如下:
A M 60.2
A(
L MW 0
L MW30
==I
)
A(
L MW 2
L MW32
==I
)
A(
L MW 4
L MW34
==I
)
A(
L MW 6
L MW36
==I
)
A(
L MW40
L 4
==I
)
= M 60.3
2.2功能模塊FC2
FC2功能塊與FC1在功能形式上是相似的,利用開鎖部分的程序類推得到設(shè)密部分的程序,,首先介紹0~9按鍵按下時的數(shù)由地址MW0,、MW2、MW3以及MW4傳送給新設(shè)定的地址MW50,、MW52,、MW54和MW56,由MW0~MW50借助當(dāng)前值地址MW10來完成數(shù)據(jù)的傳遞,,其程序如下:
A(
L MW40
L 1
==I
)
JNB _001
L "當(dāng)前密碼位的值"
T MW50
_001: NOP 0
其次,,當(dāng)設(shè)定的密碼達(dá)到四位時,將之前已經(jīng)賦值的地址MW50,、MW52,、MW54和MW56重新傳遞給MW0、MW2,、MW4和MW6,,按下確定鍵,,則顯示密碼已重置,,完成密碼的修改。
2.3組織模塊OB1
組織模塊OB1的功能可簡述為兩點:第一,,編譯主程序,;第二,,使所有的功能模塊都必須在組織塊中調(diào)用,以完成程序的編譯,,功能模塊相當(dāng)于組織模塊的子程序,。
初始密碼的設(shè)定:為方便程序調(diào)試,初始密碼設(shè)為0000,,借助功能模塊中的地址MW0,、MW2、MW4和MW6來完成,,將起始密碼的十六進(jìn)制儲存在以上地址中,,其主要程序如下:
A(
O M8.0
ONM8.0
)
FPM8.1
= L 20.0
A L 20.0
JNB _001
L W#16#1
T MW 0
_001: NOP 0
A L 20.0
JNB _002
L W#16#1
T MW 2
_002: NOP 0
A L 20.0
JNB _003
L W#16#1
T MW 4
_003: NOP 0
A L 20.0
JNB _004
L W#16#1
T MW 6
_004: NOP 0
當(dāng)按下開鎖按鍵時,會提示請“輸入密碼”的字樣,,一旦輸入密碼,,按下確定鍵,即可完成密碼的驗證,,PLC驗證密碼的程序和設(shè)定密碼的程序相似,,其程序如下:
A(
O "設(shè)定"
O M 61.2
)
AN"密碼已重置"
AN"加鎖"
AN"超時50S取消改密碼"
= M 61.2
= "請設(shè)定密碼"
L S5T#50S
SD"超時50S取消改密碼"
OB1組織模塊的關(guān)鍵是如何判定密碼輸入錯誤,當(dāng)沒有依次輸入密碼或密碼的輸入位數(shù)超過四位時,,均不能通過密碼驗證,,在驗證完密碼是否正確后,要將FC1功能模塊中加法計數(shù)器儲存的位數(shù)MW40清零,,以便在下一次輸入的過程中,,MW40從0開始計數(shù),程序如下:
A(
A(
O "密碼正確"
O M 61.2
)
A "加鎖"
O "超時1M鎖鍵盤"
O "鍵盤已加鎖"
)
AN"開鎖"
= L 20.0
A L 20.0
BLD 102
= "鍵盤已加鎖"
A L 20.0
JNB _007
L W#16#0
T MW40
_007: NOP 0
本文中的電子密碼鎖系統(tǒng)可以嵌入到相關(guān)的PLC的工業(yè)設(shè)備中,,作為設(shè)備的開啟模塊或部分危險操作的保護(hù)模塊,,從而有效降低設(shè)備的誤操作率,提高整個系統(tǒng)的安全性,。
3仿真結(jié)果
本文采用PLCSIM仿真器進(jìn)行程序的仿真,。
首先要調(diào)試的是密碼的驗證結(jié)果,驗證仿真結(jié)果依次為開鎖前(如圖2所示),、輸入四位密碼后(如圖3所示)以及密碼正確后(如圖4),。
其次是調(diào)試設(shè)密程序,將初始密碼設(shè)置成0000,,然后將密碼改成0123進(jìn)行調(diào)試,,其仿真結(jié)果依次為設(shè)置密碼前(如圖5所示)、設(shè)置密碼后(如圖6所示)和密碼已重置(如圖7所示),。圖中的前四個矩形框用于驗證數(shù)字,,第五個矩形框用于驗證位數(shù)。
本文的仿真結(jié)果,清晰地展示了整個密碼鎖系統(tǒng)的運行狀態(tài)和運行的過程,。經(jīng)過驗證,,程序是合理有效的。
4結(jié)論
本文提出的基于西門子S7300 PLC的密碼鎖設(shè)計,,主要遵循PLC的外部輸入輸出的特性來進(jìn)行相關(guān)研究和設(shè)計,,從而使密碼鎖的解密和設(shè)密功能得以實現(xiàn)。就密碼鎖的功能齊全性而言,,本設(shè)計還有待進(jìn)一步改進(jìn),。另外本文所編寫的程序都是基于PLC程序之間具有相似性來編寫的,以此來簡化密碼鎖的程序,,即使出現(xiàn)故障也能快速地修復(fù),,不影響整個系統(tǒng)的運行。
在本文的基礎(chǔ)上,,密碼鎖系統(tǒng)還可以與圖像識別技術(shù)(例如指紋識別,、虹膜識別)等結(jié)合起來應(yīng)用于高級密碼鎖中[1214],從而完善其防盜的功能,,具有工業(yè)領(lǐng)域或者現(xiàn)實生活中所要求的一些功能特性,。
參考文獻(xiàn)
[1] 亓秀玲. 用PLC實現(xiàn)密碼鎖的控制[J]. 機電工程技術(shù), 2013, 42(1): 5556.
?。?] 吳麗, 劉玉賓. 西門子S7300 PLC基礎(chǔ)與應(yīng)用[M]. 北京: 機械工業(yè)出版社, 2011.