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