專利名稱:可編程序控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及可編程序控制器,特別是涉及將用戶作成的任意的用 戶程序函數(shù)化,使用戶程序的內(nèi)容不能閱讀,從而防止信息泄露的安 全功能。
技術(shù)背景用戶程序是用戶花費工時制作的用戶的財產(chǎn)??删幊绦蚩刂破魅?果沒有用戶程序,則任何工作也不做,所以一定要處于存儲有用戶程 序的狀態(tài)。圖IO表示現(xiàn)有的可編程序控制器的程序圖。在圖10中,可編程序控制器1備有迸行運算處理的微機2;存儲順序程序或數(shù)據(jù)的存儲器3,該存儲器3由存儲系統(tǒng)程序的系統(tǒng)存儲器4和兼?zhèn)浯鎯τ脩舫绦?的用戶存儲器的存儲器5構(gòu)成;對外部進(jìn)行信號的輸入輸出 用的輸入輸出I/F (接口) 7;以及與個人計算機或其他可編程序控制器、控制裝置等進(jìn)行數(shù)據(jù)的存取用的通信I/F (接口) 8,它們都連接 在總線9上。在這樣的系統(tǒng)中, 一般用戶不采用禁止參照用戶程序的單元,有 時能簡單地獲得作為用戶的財產(chǎn)的程序。在這樣的情況下, 一般是使用采用密碼的安全功能,但在采用密 碼的安全功能的情況下,存在密碼一旦被泄露,安全功能就能簡單地 被破壞的安全漏洞。這是因為設(shè)定密碼的用戶設(shè)定自己感覺容易的密 碼,所以成為其他人容易推測的密碼。另外,即使設(shè)定了其他人難以 推測的密碼,而對設(shè)定密碼的本人來說,多半成為覺得難記的密碼, 存在忘記的危險性、或者留在筆記本等中而結(jié)果能簡單地泄露給別人 的問題。另外,在引用文獻(xiàn)l (特開平10—133719號公報)中,公開了可 以沒有用戶程序存儲器的可編程序控制器。本發(fā)明的目的在于在具有采用密碼的安全功能的可編程序控制 器中,存在一旦泄露了密碼就成為無防備的安全漏洞,對此提供一種 防止用戶程序的泄露的安全功能。為了達(dá)到上述目的,本發(fā)明將用戶程序的一部分或其全部作成用 戶定義的函數(shù),進(jìn)行函數(shù)化,作為系統(tǒng)程序的一部分,存儲在系統(tǒng)存 儲器中。在系統(tǒng)存儲器中,作為系統(tǒng)程序的一部分只允許寫入用戶定 義函數(shù),任何用戶都不能讀出作為系統(tǒng)程序的一部分的用戶定義函數(shù)。 因此,從任何用戶那里都不能讀出系統(tǒng)程序,所以能禁止閱覽作為系 統(tǒng)程序的一部分用戶程序。因此,能防止成為作為用戶定義的函數(shù)進(jìn) 行了函數(shù)化后的系統(tǒng)程序的一部分的用戶程序的泄露。另外,用戶程序區(qū)與以往一樣,能寫入、讀出,所以有一定程度 的兼容性。除此以外,本發(fā)明還有以下優(yōu)點。1. 能簡練地表達(dá)用戶程序。2. 關(guān)系到用戶程序區(qū)的容量提高、或用戶程序的容量的節(jié)約。
圖1是本發(fā)明的可編程序控制器的框圖。 圖2是表示本發(fā)明的存儲區(qū)的結(jié)構(gòu)的結(jié)構(gòu)圖。 圖3是表示系統(tǒng)存儲器的結(jié)構(gòu)的結(jié)構(gòu)圖。 圖4是表示用戶定義函數(shù)表的詳圖。 圖5是表示系統(tǒng)存儲器的結(jié)構(gòu)的詳圖。圖6是表示用戶定義函數(shù)向系統(tǒng)存儲器的傳輸方法的說明圖。 圖7是表示用戶定義函數(shù)傳輸時在用戶定義函數(shù)的最后附加 Return語句的處理方法的處理圖。圖8是執(zhí)行存儲在系統(tǒng)程序中的用戶定義函數(shù)的流程圖。 圖9是表示用戶定義函數(shù)執(zhí)行后,返回用戶程序的方法的說明圖。 圖IO是現(xiàn)有的可編程序控制器的框圖。以下,說明用于實施本發(fā)明的最佳方式。用圖1說明本發(fā)明的可編程序控制器的實施例。圖1表示本發(fā)明的可編程序控制器的框圖。在圖1中,可編程序 控制器l備有進(jìn)行運算處理的微機2;存儲順序程序或數(shù)據(jù)的存儲器 3,該存儲器3由存儲系統(tǒng)程序及函數(shù)化后的用戶程序11的系統(tǒng)存儲器4和兼?zhèn)浯鎯τ脩舫绦?的用戶存儲器的存儲器5構(gòu)成。關(guān)于該函數(shù)化后的用戶程序?qū)⒃诤竺嬖敿?xì)說明。另外,用戶程序不限制于全部 函數(shù)化后存儲在系統(tǒng)存儲器中。還備有對外部進(jìn)行信號的輸入輸出用的輸入輸出I/F (接口) 7;以及與個人計算機或其他可編程序控制器、控制裝置等進(jìn)行數(shù)據(jù)的存取用的通信I/F (接口) 8,它們都連接在總 線9上。圖2表示可編程序控制器的存儲區(qū)3??删幊绦蚩刂破鞯拇鎯^(qū)3 中備有存儲系統(tǒng)程序用的系統(tǒng)存儲器4、以及存儲用戶作成的用戶程序 6等用的用戶存儲區(qū)5兩者。在本發(fā)明中,將用戶程序6的一部分、或 其全部作成稱為FUNxx (n)的名稱的用戶定義的函數(shù),進(jìn)行函數(shù)化, 作為系統(tǒng)程序10的一部分存儲在系統(tǒng)存儲器4中。這里,通過不做從 包含用戶定義函數(shù)的系統(tǒng)程序IO進(jìn)行的讀出處理,從而使系統(tǒng)程序的 區(qū)域的參照成為不可能。因此,用戶定義函數(shù)包含定義了函數(shù)的用戶 本身,對任何用戶來說都不能閱覽。其次,說明用戶定義函數(shù)向系統(tǒng)存儲器的傳輸方法。圖3中示出 了系統(tǒng)存儲器4的存儲區(qū)結(jié)構(gòu)。如圖3所示,系統(tǒng)存儲器4被分成存 儲關(guān)于系統(tǒng)的信息的系統(tǒng)部分12、以及存儲關(guān)于用戶定義函數(shù)的信息 的部分。另外,存儲關(guān)于用戶定義函數(shù)的信息的部分被分成存儲關(guān)于 用戶定義函數(shù)的信息的用戶定義函數(shù)表13、以及存儲用戶定義函數(shù)本 身的用戶定義函數(shù)區(qū)14。這里,圖4中示出了用戶定義函數(shù)表13的詳 細(xì)內(nèi)容。在圖4中,在用戶定義函數(shù)表13中,有存儲識別用戶定義函 數(shù)的識別編號17的區(qū)域、以及存儲被存儲在用戶定義函數(shù)區(qū)中的用戶 定義函數(shù)的開始地址15和結(jié)束地址16的區(qū)域。識別用戶定義函數(shù)的 識別編號17是將多個用戶程序函數(shù)化后時,為了識別而設(shè)的編號。其次,在圖5中示出了用戶定義函數(shù)表13和用戶定義函數(shù)區(qū)14 的詳細(xì)內(nèi)容。在用戶定義函數(shù)表13中存儲了圖4所示的信息。即如圖5所示,存儲FUNxx (1)的開始地址和結(jié)束地址,其次,存儲FUNxx (2)的開始地址和結(jié)束地址,接著存儲FUNxx (3)……。在用戶定義函數(shù)區(qū)14中存儲用戶定義函數(shù)。即,存儲FUNxx(l), 其次,存儲FUNxx (2),接著存儲FUNxx (3)……。識別編號2以 后的用戶定義函數(shù)的開始地址,根據(jù)前一個識別編號的用戶定義函數(shù) 的結(jié)束地址來決定。圖6中示出了用戶定義函數(shù)的傳輸方法。用備有作成、傳輸用戶 定義函數(shù)的功能的專用工具,作成用戶定義函數(shù),將作成的用戶定義 函數(shù)傳輸給系統(tǒng)存儲器。所謂專用工具是能用PC (個人計算機)等進(jìn) 行處理的應(yīng)用軟件,進(jìn)行與現(xiàn)有的對梯形程序(ladder program)進(jìn)行 程序編制的工具類似的工作。不同的地方在于程序的存儲地點不是 用戶存儲區(qū),而是存儲在系統(tǒng)存儲器中;以及只能進(jìn)行程序的讀出。 用該應(yīng)用軟件進(jìn)行用戶定義函數(shù)的函數(shù)化,以及進(jìn)行函數(shù)化后的用戶 程序向可編程序控制器的傳輸。用該應(yīng)用軟件能將用戶定義函數(shù)寫入 系統(tǒng)程序,但不能從系統(tǒng)程序讀出用戶定義函數(shù)。傳輸用戶定義函數(shù) 時,作成的用戶定義函數(shù)存儲在用戶定義函數(shù)區(qū)中,將存儲的區(qū)域的 開始地址和結(jié)束地址存儲在用戶定義函數(shù)表中。另外,該應(yīng)用軟件在 將用戶定義函數(shù)存儲在用戶定義函數(shù)區(qū)中時,將返回用戶程序用的 "Return語句"附加在用戶定義函數(shù)的最后。圖7中示出了應(yīng)用軟件 將"Return語句"附加在用戶定義函數(shù)的最后的處理方法。這樣將 "Return語句"附加在最后,用戶定義函數(shù)執(zhí)行后能返回用戶程序。說明作為系統(tǒng)程序的一部分存儲在系統(tǒng)存儲器中的用戶定義函數(shù) 的讀出方法。用戶定義函數(shù)的讀出,只有在從用戶程序讀出函數(shù)的情 況下,才能進(jìn)行用戶定義函數(shù)的讀出。圖8及圖9中示出了用戶程序 和用戶定義函數(shù)執(zhí)行時的處理的流程圖、以及對應(yīng)于流程圖的說明圖。 執(zhí)行了用戶定義函數(shù)時,根據(jù)識別用戶定義函數(shù)的識別編號,訪問存 儲了對應(yīng)的用戶定義函數(shù)的信息的用戶定義函數(shù)表。訪問用戶定義函 數(shù)表時,將現(xiàn)在的用戶程序的地址存儲在系統(tǒng)區(qū)域中。然后,從用戶 定義函數(shù)表讀出用戶定義函數(shù)的開始地址和結(jié)束地址。根據(jù)讀出的開 始地址和結(jié)束地址,從用戶定義函數(shù)區(qū)讀出并執(zhí)行用戶定義函數(shù)。根 據(jù)用戶定義函數(shù)的偏移信息,訪問存儲有用戶定義函數(shù)的信息的用戶定義函數(shù)表時,將該時刻的用戶程序的地址存儲在存儲系統(tǒng)信息的"用 戶程序的地址存儲區(qū)"中。用戶定義函數(shù)執(zhí)行后,返回用戶程序時, 根據(jù)存儲在該"用戶程序的地址存儲區(qū)"中的用戶程序的地址,返回 用戶程序。存儲在用戶存儲器中的用戶程序能與以往一樣,在什么樣的用戶 中都能讀出、寫入,所以有某種程度的兼容性。另外,將用戶程序的 一部分或其全部作成用戶定義的函數(shù),進(jìn)行函數(shù)化,作為系統(tǒng)程序的 一部分,存儲在系統(tǒng)存儲器中,所以能簡練地表達(dá)存儲在用戶存儲器 中的用戶程序。因此,提高了程序的可讀性,也提高了可維修性。與 此相伴隨,也關(guān)系到用戶存儲器的節(jié)約。作為發(fā)明的效果,能例舉如下。(1)由于其他用戶不能閱覽作為 系統(tǒng)程序的一部分存儲在系統(tǒng)存儲器中的用戶程序,所以能確保充分的安全性。(2)由于用戶程序區(qū)與以往一樣,能寫入、讀出,所以有 某種程度的兼容性。(3)通過將用戶程序函數(shù)化,能簡練地表達(dá)用戶 程序。因此,提高了用戶程序的可讀性。(4)通過將以往存儲在用戶 程序區(qū)中的用戶程序的一部分或其全部,作為系統(tǒng)程序的一部分,存 儲在系統(tǒng)存儲器中,增加了能存儲的用戶程序的容量。還能節(jié)約用戶 程序的容量。
權(quán)利要求
1. 一種可編程序控制器,其特征在于具有用于存儲用戶作成的用戶程序的用戶存儲器;以及用于存儲系統(tǒng)程序的系統(tǒng)存儲器,將用戶作成的任意的用戶程序的一部分或其全部函數(shù)化,將函數(shù)化后的用戶程序作為系統(tǒng)程序的一部分存儲于系統(tǒng)存儲器時,劃分成用戶定義函數(shù)表及用戶定義函數(shù)區(qū),該用戶定義函數(shù)表存放用戶定義函數(shù)的開始地址和結(jié)束地址,將用戶定義函數(shù)存儲在所述用戶定義函數(shù)區(qū)中,在讀出所述系統(tǒng)存儲器中存放的用戶定義函數(shù)時,僅當(dāng)所述用戶存儲器的用戶程序中存在讀出請求的情況下才能夠讀出。
2、 根據(jù)權(quán)利要求1所述的可編程序控制器,其特征在于 在執(zhí)行所述用戶定義函數(shù)時,根據(jù)用于識別用戶定義函數(shù)的識別編號,訪問存儲有對應(yīng)的用戶定義函數(shù)的信息的用戶定義函數(shù)表,在訪問該用戶定義函數(shù)表時,在系統(tǒng)區(qū)域存儲當(dāng)前的用戶程序的 地址,通過所述用戶定義函數(shù)表,讀出所述用戶定義函數(shù)的開始地址 和結(jié)束地址,通過該讀出的開始地址和結(jié)束地址,讀出并執(zhí)行所述用戶定義函數(shù)。
全文摘要
迄今關(guān)于可編程序控制器,用戶作成的程序雖然有使用密碼的安全功能,但存在由于密碼的泄露,用戶程序泄漏的危險性。本發(fā)明提供可編程序控制器,特別具有下列功能將用戶作成的任意的用戶程序函數(shù)化的功能;將函數(shù)化后的用戶程序作為系統(tǒng)程序的一部分,傳輸給可編程序控制器的系統(tǒng)存儲器的功能;根據(jù)用戶程序,執(zhí)行作為系統(tǒng)程序的一部分的函數(shù)化后的用戶程序的功能;與此相伴隨的用戶程序區(qū)的容量增加、或用戶程序區(qū)的節(jié)約的功能;以及不可能閱覽函數(shù)化后的用戶程序的內(nèi)容,防止信息的泄露的安全功能。
文檔編號G05B19/05GK101281399SQ200810095359
公開日2008年10月8日 申請日期2005年10月8日 優(yōu)先權(quán)日2005年1月7日
發(fā)明者山本啟 申請人:株式會社日立產(chǎn)機系統(tǒng)