ACSモデルでのダむナミクスの反映

前の蚘事で、アクセス制埡システムの構造モデルは、オブゞェクトの圹割ずオブゞェクト間の二重結合の組み合わせず芋なされおいたした。 このようなモデルを䜿甚するず、システムで発生するすべおの察象プロセスの結果を反映できたす。 システム内のプロセスはオブゞェクトの盞互䜜甚によっお衚珟され、盞互䜜甚の結果は関係に保存されたす。 接続は盞互䜜甚の蚘憶であるず蚀えたすが、盞互䜜甚のプロセス自䜓は構造モデルに反映されおいたせん。 オブザヌバヌは、動䜜の倉化たたはオブゞェクトの状態の倉化を通じお盞互䜜甚を芋たす。これをデバむスず呌びたす。 たずえば、RFIDタグ付きのカヌドをリヌダヌに提瀺するず、リヌダヌはカヌドが音声信号によっお読み取られおいるこずを報告し、LEDが点滅したす。 これは物理的なリヌダヌの状態の倉化ずしお解釈できたすが、カヌドずリヌダヌ自䜓の間の盞互䜜甚、実際の読み取りは考慮されたせん。 読者は䞀連の離散状態を通過するず想定されおいたす。 ステヌトマシンを䜿甚しおこのような離散状態をモデル化するのは䟿利ですが、そのためには、物理​​䞖界ず仮想䞖界の間にチャネルを確立する必芁がありたすコンピュヌタヌモデル。 このようなチャネルは、チャネルコントロヌラヌによっお制埡され、デバむスから物理信号を送信したす。物理信号は、特別な通信モゞュヌルによっおデバむスのステヌトマシンを制埡する信号に倉換されたす。 チャネルは双方向にするこずができたす。









1぀のデバむスを耇数のチャネルに接続し、1぀のチャネルを耇数のデバむスに接続できたすが、すべおの通信チャネルは1぀の通信モゞュヌルで凊理できたす。







ACSモデルのデバむス





ステヌトマシンによっおモデル化された䞀連の離散状態によっお動䜜を説明できるデバむスをデバむスず呌びたす。 各デバむスの䞀連の状態の定矩は、シミュレヌトされたシステムの蚭蚈者によっお実行されたす。



リヌダヌステヌトマシン





実装されたACSでは、2぀のリヌダヌが䜿甚されたした。 1぀は回転匏改札口に、もう1぀はカヌドリヌダヌに取り付けられおいたす。 リヌダヌをこのように配眮するず、1回限りのパスを持぀蚪問者は、カヌドリヌダヌからカヌドが返された堎合にのみアクセスゟヌンを離れるこずができたす。カヌドリヌダヌはラベルのステヌタスを生成し、出口は蚱可され、タヌンスタむルのリヌダヌは犁止されたす。 䞡方のリヌダヌは2぀のチャネルで凊理され、リヌダヌの名前に関する情報は1぀のチャネルで受信され、カヌドの名前に関する情報は2番目のチャネルで受信されたす。



したがっお、リヌダヌには次の個別の状態がありたす。











別個の状態を䜿甚するリヌダヌがシステムの䞀郚であるずいう事実により、リヌダヌずカヌドの名前を初期状態ず組み合わせる代わりに受け取りたす。 この堎合、初期状態ぞの埩垰は、タヌンスタむルからの信号によっお実行されたす。

これらの状態ぞの遷移は、信号の1぀が受信されたずきに実行されたすリヌダヌの名前が決定され、カヌドの名前が決定され、遷移が行われるか、タむマヌが䜜動したタヌンスタむルマシンからの信号、゚ラヌが受信されたした。 これらの信号を䟋ずしお次のように瀺したす。リヌダヌの名前はnr、カヌドの名前はnc、タヌンスタむルからの信号はts、゚ラヌはerです。 䞀般的なケヌスでは、先に䜕が決定されるのかわからないので-リヌダヌたたはカヌドの名前、信号ず察応する遷移を持぀状態マシンは次のようになりたす。







マシンは非垞に簡単に実装されたす。新しい状態は珟圚の状態ず信号によっお䞀意に決定されるため、テキスト倀state_signalは遷移を定矩するキヌずしお䜿甚されたす。 初期状態ず新しい状態がわかれば 、テキスト倀current_statenew_stateによっお蚭定される遷移を簡単に決定できたす 。次に、リヌダヌマシンでは、キヌず新しい状態の間の次の察応ず遷移を取埗したす。



状態 信号 信号解読 キヌ 状態 移行
0 nr 読者名 0_nr 1 01
0 nc カヌド名 0_nc 2 02
1 nc カヌド名 1_nc 3 13
1 えヌ ゚ラヌ 1_er 0 10
2 nr 読者名 2_nr 3 23
2 えヌ ゚ラヌ 2_er 0 20
3 ts タヌンスタむル信号 3_ts 0 30




぀たり、リヌダヌステヌトマシンの信号ず遷移は、ベクトルgenによっお完党に蚘述されたす。



gen=[[0_nr, 0_nc, 1_nc, 1_er, 2_nr, 2_er, 3_ts], [1, 2, 3, 0, 3, 0, 0]]
      
      







ステヌトマシンのアルゎリズムは完党に明癜ですプログラムの起動時に初期状態が蚭定されたす。







状態が倉化したずきに発生するすべおのアクションは、適切なスクリプトによる遷移でのみ実行されたす。 リヌダヌマシンの堎合、これらのアクションは衚に瀺されおいたす。



移行 アクション
01 システムでリヌダヌ名を定矩する
02 システムでのカヌド名の定矩
13、23 タヌンスタむルマシンコヌルeo、xo信号
10、20、30 アクションなし




指定されたマシンは、リヌダヌがビゞタヌカヌドの識別モヌドで働いお回転匏改札口を通過する堎合に䜿甚されたす。 実装されたACSでは、カヌドリヌダヌは新しいビゞタヌ新しいカヌドの登録モヌドでも動䜜できたす。 この堎合、マシンずタヌンスタむルずの盞互䜜甚はなく、マシンは状態3を終了できないため動䜜したせん。リヌダヌ番号ずカヌド番号を決定した埌、マシンが初期状態に戻るには、次のものに眮き換える必芁がありたす。







しかし、状態1ず2から2぀の異なる遷移これらの遷移で異なるアクションが実行されるを介しお進むこずができるずいう事実はどうでしょうか トランゞション名を付けたす図では菱圢で瀺されおいたす







たずえば、状態1ず0の間には、信号ncず信号erに2぀の遷移がありたす。 単䞀の遷移の堎合、名前は10でした。いく぀かの遷移の堎合、名前current_state transition_name new_stateを䜿甚したす 。



状態 信号 信号解読 キヌ 状態 移行
0 nr 読者名 0_nr 1 01
0 nr カヌド名 0_nc 2 02
1 nc カヌド名 1_nc 0 100
1 えヌ ゚ラヌ 1_er 0 110
2 nr 読者名 2_nr 0 200
2 えヌ ゚ラヌ 2_er 0 210




䞊蚘のアルゎリズムを䜿甚できるようにするために、gen [1]で状態名を生成するためのルヌルを倉曎したす transition_namenew_name_name 。 次に、マシンの動䜜を決定するgenベクトルは次のようになりたす。



 gen=[[0_nr, 0_nc, 1_nc, 1_er, 2_nr, 2_er], [1, 2, 0#0, 1#0, 0#0, 1#0]]
      
      







アルゎリズムぞの最小限の倉曎は、新しい状態の定矩に関連付けられたす。 nState = gen [1] [keyInd]には新しい状態の名前は含たれたせんが、遷移の名前ずの組み合わせが含たれたすが、それを芋぀ける方法は非垞に明癜です。

移行時に登録モヌドのマシンは他のアクションを実行し、タヌンスタむルず通信したせん



移行 アクション
01 システムでリヌダヌ名を定矩する
02 システムでのカヌド名の定矩
100、200 新しいデヌタを蚘録する
110、210 ゚ラヌメッセヌゞ




タヌンスタむルステヌトマシン





回転匏改札口は、2぀のロックず遷移を修正するデバむス通垞はリヌドスむッチがある「耇雑な」デバむスです。 たた、ロックの状態ず可胜性のある音源を瀺す譊告灯もありた​​す。 1぀を入口、もう1぀を出口ず呌びたす。 各ロックは2぀の状態オヌプン/クロヌズのいずれかになりたすので、回転匏改札口は次の状態になりたす。







回転匏改札口は、リヌダヌのコマンド、制埡デバむスこの堎合はタブレットのタッチスクリヌンのコマンド、およびリヌドスむッチの信号によっお制埡されたす。 さらに、切り替えに倱敗した堎合にシステムが「フリヌズ」するのを防ぐためリヌダヌが䜜動し、ロックが開き、蚪問者が通過しなかった、タむマヌがシステムに远加されたした。これは、回転匏改札機の移行にも圱響したす。

これらの状態は、信号の1぀が受信されるず転送されたす入力を開く、出力を開くリヌダヌから、入力/出力を閉じるリヌドスむッチから-回転匏、入力/出力を開く/閉じるタッチスクリヌンから、入力/出力を閉じるタむマヌから 



状態 信号 信号解読 キヌ 状態 移行
0 eo 入力を開くリヌダヌ 0_eo 1 001
0 XO オヌプン出力リヌダヌ 0_xo 2 002
0 ep オヌプン゚ントランスタッチスクリヌン 0_ep 1 011
0 XP 出力を開くタッチスクリヌン 0_xp 2 012
1 gt 入り口近くリヌドスむッチ 1_gt 0 100
1 tt 入力を閉じるタむマヌ 1_tt 0 110
2 gt 出口を閉じるリヌドスむッチ 2_gt 0 200
2 tt 出力を閉じるタむマヌ 2_tt 0 210




衚に瀺す信号ず遷移を備えたタヌンスタむルステヌトマシンは次のようになりたす。







タヌンスタむルマシンは、移行時に次のアクションを実行したす。



移行 アクション
001、011 入力を開く、タむマヌをオンにする、むンタヌフェむスマシンを呌び出すEO信号
002、012 出力を開く、タむマヌをオンにする、むンタヌフェむスマシンを呌び出すEO信号
100 入力を閉じ、通信䞭のデヌタを蚘録し、リヌダヌマシンを呌び出すシグナルts、マシンむンタヌフェヌスを呌び出すシグナルts
110 入力を閉じ、リヌダヌマシンを呌び出すシグナルts、マシンむンタヌフェヌスを呌び出すシグナルts
200 出力のクロヌズ、通信䞭のデヌタの蚘録、リヌダヌマシンの呌び出しシグナルts、マシンむンタヌフェヌスの呌び出しシグナルts
210 出力を閉じ、リヌダヌマシンを呌び出すシグナルts、マシンむンタヌフェヌスを呌び出すシグナルts




回転匏改札機は、回転匏改札機に氞続的たたは䞀時的なステヌタスのカヌドを登録するずきに、あらゆる方向ぞの䞀方向アクセスを可胜にし、蚪問者は、カヌドリヌダヌに登録するこずによっお、䞀床だけステヌタスのカヌドで退出できたす タブレットからタヌンスタむルを制埡するこずもできたす矢印1をクリックするず入力が開き、2-出力が開きたす。クロヌズはリヌドスむッチずタむマヌ信号に埓っお行われたす。







同時に、カヌドの有無に関係なく、ボタンで゚ントリを開いたり閉じたりする必芁がある堎合がありたす。 このために、「亀通信号灯」が巊偎入口ず右偎出口で䜿甚されたす。 入口たたは出口のカヌドは、察応する信号機で黄色のラむトが「点灯」する堎合にのみ機胜したす。 赀い信号は察応するロックを閉じ、どのカヌドでも開くこずができたせん。逆に、緑の信号は開き、リヌドスむッチもタむマヌも閉じるこずができたせん。

そしお今、問題が発生したす緑の信号ボタンをクリックするず、入力を開きたす。 回転匏改札機で状態1ぞの移行を行い、リヌドスむッチgtたたはタむマヌttの信号から状態0ぞの移行を防ぐ方法 「マシン」アプロヌチでは、フラグなどの䜿甚を怜蚎するのではなく、genベクトルで指定されたマシンを䜿甚したいのは明らかです。



genベクトルのキヌコンセプトを拡匵したしょう。 キヌを生成するための行に倀を远加したす。これを条件ず呌びたす。぀たり、キヌはsignal_status + conditionです。 信号機で点灯しおいる信号ず、状態1のリヌドスむッチgtおよびタむマヌttからの信号のキヌに応じお、条件の次の倀を定矩したす。



信号機 信号機の色 状態 キヌ
䞡方の信号 黄色 1_gt、1_tt
入堎のみ 黄色ではありたせん赀たたは緑 ls 1_gtIs、1_ttIs
出口のみ 黄色ではありたせん赀たたは緑 rs 1_gtrs、1_ttrs
䞡方の信号 黄色ではありたせん赀たたは緑 bs 1_gtbs、1_ttbs




これで質問に察する答えがわかりたした。 巊偎の信号機の緑色のボタンで入力を開いた埌、リヌドスむッチからの信号はキヌ1_gtIsを䜜成し、タむマヌからの信号は1_ttIsを䜜成したす。これはgenベクトルにないため、遷移は発生したせん。 回転匏改札口は状態1のたたです。

信号機のボタンを抌すこずに関連する回転匏改札機の远加の移行を怜蚎しおください。 入力信号機からの信号はlr-赀、ly-黄色、lg-緑、出力信号機からの信号-rr-赀、ry-黄色、rg-緑です。



状態 信号 信号解読 キヌ 状態 移行
0 lg 緑色の信号ボタンで入り口を開きたす 0_lg、0_lgls、0_lgrs、0_lgbs 1 021
1 lr、ly 赀たたは黄色の信号ボタンで入り口を閉じたす 1_lrls、1_lrbs、1_lyls、1_lybs

0 120
0 rg 緑色の信号ボタンで出口を開きたす 0_rg、0_rgls、0_rgrs、0_rgbs 2 022
2 ry、rr 赀たたは黄色の信号ボタンで出口を閉じる 2_ryrs、2_rrrs、2_ryrs、2_rrbs 0 220
1 rg 緑の信号ボタンで出力を開きたす入力が開いおいる堎合 1_rgls、1_rgbs 3 123
2 lg 緑色の信号ボタンで入り口を開きたす出力が開いおいる堎合 2_lgrs、2_lgbs 3 223
3 lr、ly 赀たたは黄色の信号ボタンで入り口を閉じたす 3_lybs、3_lrbs 1 321
3 ry、rr 赀たたは黄色の信号ボタンで出口を閉じる 3_rybs、3_rrbs 2 322




ステヌトマシンの察応する遷移







タヌンスタむルステヌトマシンの完党な生成ベクトル



 gen=[[0_eo, 0_xo, 0_ep, 0_xp, 1_gt, 1_tt, 2_gt, 2_tt, 0_lg, 0_lgls, 0_lgrs, 0_lgbs, 1_lrls, 1_lrbs, 1_lyls, 1_lybs, 0_rg, 0_rgls, 0_rgrs, 0_rgbs, 2_ryrs, 2_rrrs, 2_ryrs, 2_rrbs, 1_rgls, 1_rgbs, 2_lgrs, 2_lgbs, 3_lybs, 3_lrbs, 3_rybs, 3_rrbs, 1_xols, 1_xpls, 3_gtls, 3_ttls, 2_eors, 2_eprs, 3_gtrs, 3_ttrs], [0#1, 0#2, 1#1, 1#2, 0#0,1#0, 0#0, 1#0, 2#1, 2#1, 2#1, 2#1, 2#0, 2#0, 2#0, 2#0, 2#2, 2#2, 2#2, 2#2, 2#0, 2#0, 2#0, 2#0, 2#3, 2#3, 2#3, 2#3, 2#1, 2#1, 2#2, 2#2, 0#3, 1#3, 0#1, 1#1, 0#3, 1#3, 0#2, 1#2]].
      
      







远加の遷移に察するアクションは、シグナル埩号化から明らかです。



むンタヌフェむスステヌトマシン





回転匏改札口はタブレットから制埡でき、その逆も同様です。むンタヌフェヌスの状態はリヌダヌず回転匏改札口からの信号に䟝存したす。

むンタヌフェヌスの初期状態䞊蚘の図からわかるように、矢印の圢の2぀のボタンず各信号機の3぀のボタンが制埡に䜿甚されたす。 矢印は、黄色のラむトが察応する信号機にある堎合にのみ機胜したす。 信号が赀たたは緑の堎合、矢印は機胜したせん。 ぀たり、信号機の状態はオンずオフになりたす。 たた、2぀の矢印の状態は同じです。

その結果、次の可胜なむンタヌフェむス状態を取埗したす。











前ず同様に、すべおの信号ずテヌブルぞの遷移を収集したす図の巊半分のみに関連する信号を瀺し、genベクトルを完党に提瀺したす。



状態 信号 信号解読 キヌ 状態 移行
0 AE ゚ントリヌ矢印をクリックしたす 0_ae 1 001
0 eo 入力を開くリヌダヌ 0_eo 1 011
1 ts 入り口付近改札口 1_ts 0 10
0 lr 赀信号入力を抌したす 0_lr 3 003
0 lg 緑色の信号を入力しおください 0_lg 3 013
3 lr 赀信号入力を抌したす 3_lr 3 303
3 lg 緑色の信号を入力しおください 3_lg 3 313
3 ly 黄色の信号入力を抌したす 3_ly 0 30
3 rr 赀信号出力を抌す 3_rr 5 305
3 rg 青信号を抌す 3_rg 5 315
3 x 終了矢印を抌す 3_ax 6 306
3 XO 出力を開くリヌダヌ 3_xo 6 316
5 ry 黄色の信号機を抌す 5_ry 3 53
6 ts 入り口付近改札口 6_ts 3 63




車の察応する遷移







むンタヌフェむスステヌトマシンの完党な生成ベクトル



 gen=[[0_ae, 0_eo, 0_ax, 0_ex, 1_ts, 2_ts, 0_lr, 0_lg, 0_rr, 0_rg, 3_ly, 4_ry, 3_ax, 3_xo, 6_ts, 4_ae, 4_eo, 7_ts, 3_lr, 3_lg, 3_rr, 3_rg, 4_rr, 4_rg, 4_lr, 4_lg, 5_ry, 5_ly, 5_lr, 5_lg, 5_rr, 5_rg], [0#1, 1#1, 0#2, 1#2, 0, 0, 0#3, 1#3, 0#4, 1#4, 0, 0, 0#6, 1#6, 3, 0#7, 1#7, 4, 0#3, 1#3, 0#5, 1#5, 0#4, 1#4, 0#5, 1#5, 3, 4, 0#5, 1#5, 2#5, 3#5]]
      
      







遷移アクションは、むンタヌフェヌスの状態によっお瀺されたす。







さらに、移行時に、回転匏改札機の条件が倉わり、それが呌び出されたす信号ep、xp、lr、lg、ly、rr、rg、ry



移行 状態
003.013 ls
30
305,315 bs
53 ls
004.014 rs
40
405,415 bs
54 rs




したがっお、3぀のステヌトマシンの助けを借りお、信号亀換の助けを借りお単玔な動的ACSモデルを構築し、かなり耇雑な制埡システムを実装できるようにしたした。

将来、この蚘事および以前の蚘事で説明した原則に基づいたアクセス制埡システムの実装の実䟋が提䟛されたす。



All Articles