《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于西門子S7-300 PLC的電子密碼鎖系統(tǒng)設計
基于西門子S7-300 PLC的電子密碼鎖系統(tǒng)設計
2017年微型機與應用第10期
莫冰1,2,劉長江2
1.四川理工學院 自動化與信息工程學院, 四川 自貢 643000;   2.四川理工學院 數(shù)學與統(tǒng)計學院, 四川 自貢 643000
摘要: 西門子S7-300可編程邏輯控制器(Programmable Logic Controller,PLC)在工業(yè)控制系統(tǒng)中有較為廣泛的應用,但一直以來缺少密碼鎖方面的相關研究。針對西門子S7300 PLC控制的相關工業(yè)設備,設計了一類內(nèi)嵌式電子密碼鎖系統(tǒng),并將該系統(tǒng)的解密與設密與PLC控制原理相結合,使其能直接應用于工業(yè)設備,從而實現(xiàn)設備的防盜功能。最后,采用軟件STEP 7 SIMATIC對密碼鎖系統(tǒng)進行編程和測試,其仿真結果表明密碼鎖的功能是可靠且有效的。
Abstract:
Key words :

  莫冰1,2,劉長江2

  (1.四川理工學院 自動化與信息工程學院, 四川 自貢 643000;2.四川理工學院 數(shù)學與統(tǒng)計學院, 四川 自貢 643000)

  摘要:西門子S7-300可編程邏輯控制器(Programmable Logic Controller,PLC)在工業(yè)控制系統(tǒng)中有較為廣泛的應用,但一直以來缺少密碼鎖方面的相關研究。針對西門子S7300 PLC控制的相關工業(yè)設備,設計了一類內(nèi)嵌式電子密碼鎖系統(tǒng),并將該系統(tǒng)的解密與設密與PLC控制原理相結合,使其能直接應用于工業(yè)設備,從而實現(xiàn)設備的防盜功能。最后,采用軟件STEP 7 SIMATIC對密碼鎖系統(tǒng)進行編程和測試,其仿真結果表明密碼鎖的功能是可靠且有效的。

  關鍵詞:密碼鎖;PLC;STEP 7 SIMATIC;S7-300

  中圖分類號:TP277文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.10.003

  引用格式:莫冰,劉長江.基于西門子S7-300 PLC的電子密碼鎖系統(tǒng)設計[J].微型機與應用,2017,36(10):7-10,14.

0引言

  *基金項目:四川省人工智能重點實驗室資助項目(2014RZY02);四川省橋梁無損檢測與工程計算重點實驗室資助項目(2014QZY01)

  縱觀密碼鎖的悠久歷史,其種類繁多,從機械密碼鎖發(fā)展到如今功能齊全的電子密碼鎖。電子密碼鎖以其自身的優(yōu)點被人們所廣泛關注和使用。其特點如下。

 ?。?)保密性能好,隨機輸入成功率極低,避免資料的丟失和財產(chǎn)的流失。

 ?。?)密碼可以隨時更改,防止密碼被盜。

 ?。?)比機械鎖零件少,減少人為的磨損。

  (4)使用方便靈活,不需要佩帶鑰匙來開鎖[1]。

  如今,在工業(yè)和工程領域中,因其自身的易操作性,PLC被廣泛使用在工業(yè)過程控制中。但是在一些大型的PLC工業(yè)整體系統(tǒng)中,由于非專業(yè)操作員的不當使用以及PLC程序的泄露,導致經(jīng)濟效益下降和財產(chǎn)的損失,產(chǎn)生了諸多不安全性因素,所以本文提出一種基于PLC的密碼鎖設計,該設計應用于PLC所處的工業(yè)領域的防盜中,可以大大加強管控力度,保證系統(tǒng)的安全運行,提高工廠的經(jīng)濟效益。

  但是工業(yè)領域中將密碼鎖嵌入到PLC中用于防盜的案例實在太少,為了填補其空缺,本文采用德國西門子S7300 PLC來實現(xiàn)密碼的設定和解鎖功能,其結構簡單,且故障率低。

  S7300系列PLC采用模塊化結構[2],適用于輸入/輸出(I/O)點數(shù)在1 000左右的集中或分布式控制系統(tǒng),一般由中央處理單元(CPU)、輸入信號模塊、輸出模塊、電源模塊、通信模塊、接口模塊和功能模塊等組成[3],其中最基本的S7300 PLC系統(tǒng)只需中央處理單元、電源模塊以及輸入輸出模塊組成。在模塊的安裝方面也有一些規(guī)定,第一號槽位是電源模塊,第二號槽位是中央處理器模塊,第三號槽位是接口模塊,接下來的模塊可以自由分配接上即可[4]。

  本文采用STEP 7 SIMATIC軟件結合S7300 PLC芯片,仿真出密碼鎖的部分功能。STEP7 SIMATIC V5.5軟件是德國西門子公司針對S7300/400 PLC所研發(fā)的一款支持中文及多個國家語言的編程軟件[5],本文采用此編程軟件對密碼鎖的部分功能進行仿真。

  目前,PLC技術已經(jīng)被廣泛應用于機械制造、能源、交通運輸及文化娛樂等行業(yè)中。隨著其進一步發(fā)展,PLC必將滲透到生活中的每個角落[68]。對密碼鎖和以太網(wǎng)結合技術的深入研究也會給生活中各領域的防盜帶來極大的改善。

1問題描述

  1.1控制原理

  本文設計的密碼鎖系統(tǒng)主要包括開鎖和設密碼兩個部分。在開鎖環(huán)節(jié),進行輸入數(shù)字的判斷以及輸入位數(shù)的判斷,本文采用四位密碼輸入的形式,當依次輸入的數(shù)字與設定的密碼完全一致時,實現(xiàn)開鎖,否則開鎖失??;另外在此環(huán)節(jié)還增加了超時自鎖功能,當用戶超過某一時間不輸入密碼,鍵盤將自動加鎖;在設密碼環(huán)節(jié),依次輸入要設置的密碼即可,按下確定鍵即實現(xiàn)密碼的設置,同時密碼已重置。同樣在此環(huán)節(jié),用戶沒有在規(guī)定時間重置密碼,鍵盤將自動加鎖。

  1.2結構和符號表

  基于西門子S7300PLC控制的密碼鎖結構的外部接線圖如圖1所示。

  

001.jpg

  由圖1可知,本文采用15個按鍵輸入和6個指示燈作為輸出,可以清楚地看出密碼解鎖和設密的整個過程。

  用PLC進行仿真,必須將按鍵和指示燈轉化為大家熟知的按鈕,這就必須將其符號表[9]導入程序中進行仿真,本文的PLC密碼鎖的符號表如表1所示。

006.jpg

2軟件設計

  2.1功能模塊FC1

  功能塊FC1主要描述開鎖的程序,利用PLC的內(nèi)部存儲器標志位存儲器區(qū)(M區(qū)),賦予0~9不同的地址,詳情可見文獻[10]。由于0~9的程序非常相似,以下只列出按鍵0的程序:

  A(

  O "0"

  O M 11.0

  )

  AN  "密碼正確"

  AN"密碼錯誤"

  AN"取消"

  = M 11.0

  以上程序表明,當密碼正確(Q11.1燈亮)和密碼錯誤(Q11.2燈亮)任意一個有效的時候,按鍵0~9均無效,而當取消按鍵按下時,0~9也均無效。

  接下來的工作就是判斷輸入的位數(shù)是否滿足設定的位數(shù)要求,利用一個加法計數(shù)器,每當0~9的按鍵按下時,都會加1,按下取消按鍵則給計數(shù)器清零。

002.jpg

  如何判斷輸入是否正確是開鎖過程中最重要的部分,在OB1主程序中設定初值地址MW0、MW2、MW4、MW6四個初值,詳情可見文獻[11]。在FC1模塊中設定四個變量地址,即0~9按鍵按下時的數(shù)轉化為十六進制的數(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在功能形式上是相似的,利用開鎖部分的程序類推得到設密部分的程序,首先介紹0~9按鍵按下時的數(shù)由地址MW0、MW2、MW3以及MW4傳送給新設定的地址MW50、MW52、MW54和MW56,由MW0~MW50借助當前值地址MW10來完成數(shù)據(jù)的傳遞,其程序如下:

  A(

  L MW40

  L 1

  ==I

  )

  JNB _001

  L "當前密碼位的值"

  T MW50

  _001: NOP 0

  其次,當設定的密碼達到四位時,將之前已經(jīng)賦值的地址MW50、MW52、MW54和MW56重新傳遞給MW0、MW2、MW4和MW6,按下確定鍵,則顯示密碼已重置,完成密碼的修改。

  2.3組織模塊OB1

  組織模塊OB1的功能可簡述為兩點:第一,編譯主程序;第二,使所有的功能模塊都必須在組織塊中調(diào)用,以完成程序的編譯,功能模塊相當于組織模塊的子程序。

  初始密碼的設定:為方便程序調(diào)試,初始密碼設為0000,借助功能模塊中的地址MW0、MW2、MW4和MW6來完成,將起始密碼的十六進制儲存在以上地址中,其主要程序如下:

  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

  當按下開鎖按鍵時,會提示請“輸入密碼”的字樣,一旦輸入密碼,按下確定鍵,即可完成密碼的驗證,PLC驗證密碼的程序和設定密碼的程序相似,其程序如下:

  A(

  O "設定"

  O M 61.2

  )

  AN"密碼已重置"

  AN"加鎖"

  AN"超時50S取消改密碼"

  = M 61.2

  = "請設定密碼"

  L S5T#50S

  SD"超時50S取消改密碼"

  OB1組織模塊的關鍵是如何判定密碼輸入錯誤,當沒有依次輸入密碼或密碼的輸入位數(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)可以嵌入到相關的PLC的工業(yè)設備中,作為設備的開啟模塊或部分危險操作的保護模塊,從而有效降低設備的誤操作率,提高整個系統(tǒng)的安全性。

3仿真結果

  本文采用PLCSIM仿真器進行程序的仿真。

003.jpg

  首先要調(diào)試的是密碼的驗證結果,驗證仿真結果依次為開鎖前(如圖2所示)、輸入四位密碼后(如圖3所示)以及密碼正確后(如圖4)。

  其次是調(diào)試設密程序,將初始密碼設置成0000,然后將密碼改成0123進行調(diào)試,其仿真結果依次為設置密碼前(如圖5所示)、設置密碼后(如圖6所示)和密碼已重置(如圖7所示)。圖中的前四個矩形框用于驗證數(shù)字,第五個矩形框用于驗證位數(shù)。

  

004.jpg

005.jpg

  本文的仿真結果,清晰地展示了整個密碼鎖系統(tǒng)的運行狀態(tài)和運行的過程。經(jīng)過驗證,程序是合理有效的。

4結論

  本文提出的基于西門子S7300 PLC的密碼鎖設計,主要遵循PLC的外部輸入輸出的特性來進行相關研究和設計,從而使密碼鎖的解密和設密功能得以實現(xiàn)。就密碼鎖的功能齊全性而言,本設計還有待進一步改進。另外本文所編寫的程序都是基于PLC程序之間具有相似性來編寫的,以此來簡化密碼鎖的程序,即使出現(xiàn)故障也能快速地修復,不影響整個系統(tǒng)的運行。

  在本文的基礎上,密碼鎖系統(tǒng)還可以與圖像識別技術(例如指紋識別、虹膜識別)等結合起來應用于高級密碼鎖中[1214],從而完善其防盜的功能,具有工業(yè)領域或者現(xiàn)實生活中所要求的一些功能特性。

參考文獻

 ?。?] 亓秀玲. 用PLC實現(xiàn)密碼鎖的控制[J]. 機電工程技術, 2013, 42(1): 5556.

  [2] 吳麗, 劉玉賓. 西門子S7300 PLC基礎與應用[M]. 北京: 機械工業(yè)出版社, 2011.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。