控制系統(tǒng)、程序發(fā)送裝置、認(rèn)證服務(wù)器、程序保護(hù)方法、程序發(fā)送方法以及程序發(fā)送裝置的程序的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及控制系統(tǒng)、程序發(fā)送裝置程序、認(rèn)證服務(wù)器、程序保護(hù)方法以及程序發(fā)送方法。
【背景技術(shù)】
[0002]在工廠自動(dòng)化(Factory.Automat1n:FA)系統(tǒng)中,配置有用于控制工場(chǎng)內(nèi)的生產(chǎn)設(shè)備的動(dòng)作的控制器。該控制器被稱為可編程邏輯控制器(Programmable.Logic.Controller:PLC)。用于使PLC進(jìn)行動(dòng)作的控制程序使用梯形圖等語(yǔ)言進(jìn)行設(shè)計(jì)。使用梯形圖程序開發(fā)環(huán)境將設(shè)計(jì)出的控制程序變換成執(zhí)行用控制程序,并經(jīng)由通信線纜寫入至PLC。如上所述,將開發(fā)控制程序、并向PLC寫入控制程序的裝置稱為開發(fā)用計(jì)算機(jī)。
[0003]梯形圖程序開發(fā)環(huán)境作為在Windows (注冊(cè)商標(biāo))上運(yùn)行的軟件被大量地出售。如果具有運(yùn)行Windows (注冊(cè)商標(biāo))的計(jì)算機(jī)、和梯形圖程序開發(fā)環(huán)境,則能夠使用計(jì)算機(jī)容易地進(jìn)行向PLC寫入執(zhí)行用控制程序、和從PLC讀出執(zhí)行用控制程序。因此,近年來(lái)發(fā)生了下述問(wèn)題,即,從已經(jīng)在工場(chǎng)中取得運(yùn)轉(zhuǎn)實(shí)績(jī)的PLC中抽取執(zhí)行用控制程序,模仿該程序而制作出用于控制其他生產(chǎn)設(shè)備的動(dòng)作的PLC。
[0004]為了應(yīng)對(duì)如上所述的問(wèn)題,采取了用于防止在FA系統(tǒng)中改用模仿品的各種對(duì)策。作為一個(gè)具體例子,根據(jù)專利文獻(xiàn)1,在向PLC寫入控制程序的執(zhí)行用控制程序時(shí),開發(fā)用計(jì)算機(jī)將執(zhí)行用控制程序加密而轉(zhuǎn)送至PLC。在執(zhí)行控制程序時(shí),PLC解析預(yù)先生成的加密規(guī)則,提取已在開發(fā)用計(jì)算機(jī)中登記的控制儀器固有的信息。而且,介紹了下述技術(shù),即,PLC基于提取出的控制儀器固有的信息,確認(rèn)執(zhí)行用控制程序是否是控制儀器(PLC)固有的程序,如果是固有的程序,則通過(guò)在PLC中解密出執(zhí)行用控制程序,從而保護(hù)PLC內(nèi)部的數(shù)據(jù)。
[0005]專利文獻(xiàn)1:日本特開2008-65678號(hào)公報(bào)
【發(fā)明內(nèi)容】
[0006]在專利文獻(xiàn)I所示的方式中,執(zhí)行用控制程序的加密、解密所需的信息由開發(fā)用計(jì)算機(jī)進(jìn)行管理,因此,存在下述課題,即,如果盜取開發(fā)用計(jì)算機(jī),則能夠容易地得到執(zhí)行用控制程序的解密所需的密鑰,因此,無(wú)法保護(hù)執(zhí)行用控制程序。
[0007]另外,在構(gòu)建、使用FA系統(tǒng)時(shí),大多數(shù)情況下進(jìn)行PLC的控制程序的開發(fā)、設(shè)計(jì)的公司與進(jìn)行維護(hù)的公司是不同的。在該狀況下,執(zhí)行用控制程序的解密所需的密鑰由開發(fā)出PLC的執(zhí)行用控制程序的公司的計(jì)算機(jī)創(chuàng)建。但是,包含該密鑰在內(nèi),將開發(fā)數(shù)據(jù)作為機(jī)密信息在公司內(nèi)進(jìn)行管理,因此,在公司不同的情況下,從機(jī)密管理的方面考慮,難以進(jìn)行公司之間的數(shù)據(jù)傳遞。由此,在進(jìn)行維護(hù)的公司中,無(wú)法得到PLC的控制程序的解密所需的密鑰,因此,在專利文獻(xiàn)I所示的方式中,存在無(wú)法由進(jìn)行維護(hù)的公司的計(jì)算機(jī)閱覽控制程序的課題。
[0008]另外,專利文獻(xiàn)I所示的方式是在始終與網(wǎng)絡(luò)連接的狀態(tài)下,將執(zhí)行用控制程序以及執(zhí)行用控制程序的加密、解密所需的信息在開發(fā)用個(gè)人計(jì)算機(jī)與控制儀器之間進(jìn)行交換。因此,在專利文獻(xiàn)I所示的方式中,在網(wǎng)絡(luò)上進(jìn)行轉(zhuǎn)送的數(shù)據(jù)量變多。因此,存在下述課題,即,如果將專利文獻(xiàn)I所示的方式應(yīng)用于網(wǎng)絡(luò)質(zhì)量較差的環(huán)境中,則會(huì)經(jīng)常發(fā)生超時(shí)、通信線路故障,容易發(fā)生執(zhí)行用控制程序的轉(zhuǎn)送失敗。
[0009]作為解決這些課題的方法,考慮下述方式,S卩,由開發(fā)出執(zhí)行用控制程序的公司的計(jì)算機(jī)生成執(zhí)行用控制程序的解密所需的密鑰,將生成的密鑰記錄至其他的介質(zhì)(USB存儲(chǔ)器等),將介質(zhì)從開發(fā)出執(zhí)行用控制程序的公司送交至進(jìn)行維護(hù)的公司。然后,維護(hù)執(zhí)行用控制程序的公司能夠使用介質(zhì)所記錄的密鑰,由維護(hù)執(zhí)行用控制程序的公司的計(jì)算機(jī)閱覽控制程序。但是,在該方式中也留有下述課題,即,在介質(zhì)被盜的情況下,執(zhí)行用控制程序的解密所需的密鑰被泄漏,因此,無(wú)法保護(hù)控制程序。
[0010]本發(fā)明就是為了解決上述所示的課題而提出的,其目的在于,針對(duì)特定的用戶,容易從PLC讀出執(zhí)行用控制程序、向PLC寫入執(zhí)行用控制程序,并且,防止執(zhí)行用控制程序的閱覽、編輯所需的密鑰向除了特定的用戶以外的范圍泄露。
[0011]本發(fā)明所涉及的控制系統(tǒng)具有:控制裝置,其執(zhí)行儀器的控制;程序發(fā)送裝置,其將記述有通過(guò)所述控制裝置執(zhí)行的所述儀器的控制的源程序變換為能夠通過(guò)所述控制裝置執(zhí)行的執(zhí)行用程序,將變換后的所述執(zhí)行用程序加密而生成加密執(zhí)行用程序,將生成的所述加密執(zhí)行用程序發(fā)送至所述控制裝置;以及認(rèn)證服務(wù)器,
[0012]該控制系統(tǒng)的特征在于,所述程序發(fā)送裝置具有:
[0013]發(fā)送側(cè)獲取部,其獲取用于識(shí)別所述控制裝置的儀器標(biāo)識(shí)符;以及
[0014]發(fā)送側(cè)通信部,其將編輯用密鑰和由所述發(fā)送側(cè)獲取部獲取到的所述儀器標(biāo)識(shí)符發(fā)送至所述認(rèn)證服務(wù)器,并且,將執(zhí)行用密鑰和所述加密執(zhí)行用程序發(fā)送至所述控制裝置,該編輯用密鑰在將所述加密執(zhí)行用程序解密成所述執(zhí)行用程序,并且將解密后的所述執(zhí)行用程序變換為所述源程序時(shí)使用,該執(zhí)行用密鑰在將所述加密執(zhí)行用程序解密為所述執(zhí)行用程序時(shí)使用,
[0015]所述認(rèn)證服務(wù)器從所述發(fā)送側(cè)通信部接收所述編輯用密鑰和所述儀器標(biāo)識(shí)符,將接收到的所述編輯用密鑰與所述儀器標(biāo)識(shí)符相關(guān)聯(lián)地存儲(chǔ)至存儲(chǔ)裝置,
[0016]所述控制裝置接收由所述發(fā)送側(cè)通信部發(fā)送出的所述執(zhí)行用密鑰和所述加密執(zhí)行用程序,基于接收到的所述執(zhí)行用密鑰和所述加密執(zhí)行用程序,執(zhí)行所述儀器的控制。
[0017]發(fā)明的效果
[0018]根據(jù)本發(fā)明所涉及的控制系統(tǒng),能夠防止控制程序解讀所需的編輯用密鑰的泄漏,安全地保護(hù)控制程序,并且,即使寫入PLC的控制程序的公司與讀出PLC的控制程序的公司不同,也能夠提高從PLC讀出執(zhí)行用控制程序、向PLC寫入執(zhí)行用控制程序的便利性。
【附圖說(shuō)明】
[0019]圖1是表示實(shí)施方式I所涉及的控制系統(tǒng)800的結(jié)構(gòu)框圖。
[0020]圖2是表示實(shí)施方式I所涉及的開發(fā)用計(jì)算機(jī)200的詳細(xì)結(jié)構(gòu)框圖。
[0021]圖3是表示實(shí)施方式I所涉及的管理服務(wù)器100所具有的用戶管理表101的結(jié)構(gòu)圖。
[0022]圖4是表示實(shí)施方式I所涉及的管理服務(wù)器100、開發(fā)用計(jì)算機(jī)200、控制器300的硬件結(jié)構(gòu)的一個(gè)例子的圖。
[0023]圖5是表示在實(shí)施方式I所涉及的控制系統(tǒng)800中,將執(zhí)行用控制程序651從開發(fā)用計(jì)算機(jī)200寫出至控制器300的順序的時(shí)序圖。
[0024]圖6是表示實(shí)施方式I所涉及的管理服務(wù)器100的用戶認(rèn)證處理710的流程的流程圖。
[0025]圖7是表示實(shí)施方式I所涉及的開發(fā)用計(jì)算機(jī)200的控制程序變換處理720的流程的流程圖。
[0026]圖8是表示實(shí)施方式I所涉及的管理服務(wù)器100的編輯用密鑰登記處理730的流程的流程圖。
[0027]圖9是表示在實(shí)施方式2所涉及的控制系統(tǒng)800中,將加密執(zhí)行用控制程序651a從控制器300讀出至維護(hù)用計(jì)算機(jī)250的順序的時(shí)序圖。
[0028]圖10是表示實(shí)施方式2所涉及的管理服務(wù)器100的編輯用密鑰認(rèn)證處理S750的流程的流程圖。
[0029]圖11是表示實(shí)施方式3所涉及的控制系統(tǒng)801的結(jié)構(gòu)框圖。
[0030]圖12是表示在實(shí)施方式3所涉及的控制系統(tǒng)801中,將執(zhí)行用控制程序651從開發(fā)用計(jì)算機(jī)200寫出至控制器300、300a、300b的順序的時(shí)序圖。
[0031]圖13是表示實(shí)施方式3所涉及的開發(fā)用計(jì)算機(jī)200的控制程序變換處理720的流程的流程圖。
[0032]圖14是表示在實(shí)施方式4所涉及的控制系統(tǒng)801中,將加密執(zhí)行用控制程序651a從控制器300讀出至維護(hù)用計(jì)算機(jī)250的順序的時(shí)序圖。
[0033]圖15是實(shí)施方式5所涉及的控制系統(tǒng)802的結(jié)構(gòu)框圖。
[0034]圖16是實(shí)施方式5所涉及的管理服務(wù)器100所具有的儀器識(shí)別ID表112的結(jié)構(gòu)圖。
[0035]圖17是實(shí)施方式5所涉及的開發(fā)用計(jì)算機(jī)200的詳細(xì)結(jié)構(gòu)框圖。
[0036]圖18是表示在實(shí)施方式5所涉及的控制系統(tǒng)800中,將執(zhí)行用控制程序651從開發(fā)用計(jì)算機(jī)200寫出至控制器300的順序的時(shí)序圖。
[0037]圖19是表示實(shí)施方式5所涉及的開發(fā)用計(jì)算機(jī)200的有效期限設(shè)定處理S810的流程的流程圖。
[0038]圖20是表示實(shí)施方式5所涉及的管理服務(wù)器100的編輯用密鑰登記處理S770的流程的流程圖。
[0039]圖21是表示實(shí)施方式5所涉及的管理服務(wù)器100的有效期限確認(rèn)處理S790的流程的流程圖。
[0040]圖22是表示在實(shí)施方式6所涉及的控制系統(tǒng)802中,將執(zhí)行用控制程序651從開發(fā)用計(jì)算機(jī)200寫出至控制器300的順序的時(shí)序圖。
[0041]圖23是表示實(shí)施方式6所涉及的管理服務(wù)器100的編輯用密鑰認(rèn)證處理S780的流程的流程圖。
【具體實(shí)施方式】
[0042]實(shí)施方式1.
[0043]圖1是表示本實(shí)施方式所涉及的控制系統(tǒng)800的結(jié)構(gòu)框圖。
[0044]本實(shí)施方式所涉及的控制系統(tǒng)800例如是用于控制工場(chǎng)內(nèi)的生產(chǎn)儀器500的動(dòng)作的系統(tǒng)。
[0045]如圖1所示,控制系統(tǒng)800具有管理服務(wù)器100、開發(fā)用計(jì)算機(jī)200、以及控制器300。管理服務(wù)器100與開發(fā)用計(jì)算機(jī)200通過(guò)通信線路400連接。另外,開發(fā)用計(jì)算機(jī)200與控制器300通過(guò)通信線路401連接。
[0046]管理服務(wù)器100在控制系統(tǒng)800中,對(duì)進(jìn)行控制程序的設(shè)計(jì)、維護(hù)等的用戶進(jìn)行管理。管理服務(wù)器100是執(zhí)行用戶的認(rèn)證處理等的認(rèn)證服務(wù)器的一個(gè)例子。
[0047]控制器300是執(zhí)行儀器的控制的控制裝置的一個(gè)例子。
[0048]開發(fā)用計(jì)算機(jī)200接受由用戶進(jìn)行的操作,基于接受到的操作的內(nèi)容,執(zhí)行控制程序的設(shè)計(jì)、開發(fā)等處理。
[0049]控制程序是記述有由控制器300執(zhí)行的生產(chǎn)儀器500的控制的源程序。
[0050]開發(fā)用計(jì)算機(jī)200將控制程序變換成能夠由控制器300執(zhí)行的執(zhí)行用控制程序,并將變換后的執(zhí)行用控制程序加密,生成加密后的執(zhí)行用控制程序(加密執(zhí)行用程序的一個(gè)例子)。
[0051]另外,開發(fā)用計(jì)算機(jī)200生成編輯用密鑰以及執(zhí)行用密鑰,該編輯用密鑰在將加密后的執(zhí)行用控制程序(下面,稱為加密執(zhí)行用控制程序651a)解密成執(zhí)行用控制程序、且將解密后的執(zhí)行用控制程序變換成控制程序時(shí)使用,該執(zhí)行用密鑰在將加密執(zhí)行用控制程序651a解密成執(zhí)行用控制程序時(shí)使用。
[0052]開發(fā)用計(jì)算機(jī)200是將加密執(zhí)行用控制程序651a寫出至控制器300的程序發(fā)送裝置的一個(gè)例子。
[0053]將加密執(zhí)行用控制程序651a寫出至控制器300是指,經(jīng)由通信線路401將加密執(zhí)行用控制程序651a發(fā)送至控制器300。
[0054]開發(fā)用計(jì)算機(jī)200從用戶接受將執(zhí)行用控制程序?qū)懗鲋量刂破?00的請(qǐng)求,將執(zhí)行用控制程序和執(zhí)行用密鑰寫出至控制器300,將用于閱覽控制程序的編輯用密鑰登記至管理服務(wù)器100。
[0055]控制系統(tǒng)800也可以與維護(hù)用計(jì)算機(jī)250連接。
[0056]維護(hù)用計(jì)算機(jī)250從控制器300接受讀出執(zhí)行用控制程序的請(qǐng)求,從控制器300讀出加密執(zhí)行用控制程序651a。
[0057]維護(hù)用計(jì)算機(jī)250在進(jìn)行用戶的認(rèn)證處理時(shí)從管理服務(wù)器100獲取編輯用密鑰。
[0058]在維護(hù)用計(jì)算機(jī)250中,使用編輯用密鑰將讀出的加密執(zhí)行用控制程序651a變換成能夠閱覽的控制程序220。
[0059]開發(fā)用計(jì)算機(jī)200與維護(hù)用計(jì)算機(jī)250的內(nèi)部結(jié)構(gòu)相同??梢允窃贗臺(tái)計(jì)算機(jī)中具有開發(fā)用計(jì)算機(jī)200和維護(hù)用計(jì)算機(jī)250兩者的功能?;蛘?,也可以是僅具有開發(fā)用計(jì)算機(jī)200和維護(hù)用計(jì)算機(jī)250中的某一個(gè)功能的I臺(tái)計(jì)算機(jī)。
[0060]例如,開發(fā)用計(jì)算機(jī)200是開發(fā)公司所使用的計(jì)算機(jī),維護(hù)用計(jì)算機(jī)250是維護(hù)公司所利用的計(jì)算機(jī)。
[0061]控制器300通過(guò)執(zhí)行控制程序,從而執(zhí)行生產(chǎn)儀器500的控制??刂破?00接收從開發(fā)用計(jì)算機(jī)200發(fā)送出的執(zhí)行用密鑰和加密執(zhí)行用控制程序651a,基于接收到的執(zhí)行用密鑰和加密執(zhí)行用控制程序651a,執(zhí)行生產(chǎn)儀器500的控制。
[0062]使用圖1,對(duì)控制器300的功能進(jìn)行說(shuō)明。
[0063]控制器300具有通信控制部301、執(zhí)行用控制程序保管部302、內(nèi)部總線303、儀器識(shí)別ID管理部304、控制程序執(zhí)行部305、以及解密部306。
[0064]控制器300的內(nèi)部構(gòu)成為,經(jīng)由內(nèi)部總線303,將通信控制部301、執(zhí)行用控制程序保管部302、儀器識(shí)別ID管理部304、控制程序執(zhí)行部305、解密部306進(jìn)行了連接。
[0065]通信控制部301經(jīng)由通信線路401與開發(fā)用計(jì)算機(jī)200的控制器通信部201連接。
[0066]通信線路401例如是USB線纜、與Ethernet (注冊(cè)商標(biāo))相對(duì)應(yīng)的LAN線纜等。
[0067]執(zhí)行用控制程序保管部302將執(zhí)行用控制程序存儲(chǔ)至控制器300所具有的存儲(chǔ)裝置。
[0068]儀器識(shí)別ID管理部304將控制器300的儀器識(shí)別ID存儲(chǔ)至控制器300所具有的存儲(chǔ)裝置。
[0069]解密部306對(duì)由執(zhí)行用控制程序保管部302保管的執(zhí)行用控制程序進(jìn)行解密。
[0070]控制程序執(zhí)行部305與生產(chǎn)儀器500連接。控制程序執(zhí)行部305通過(guò)執(zhí)行由解密部306解密出的執(zhí)行用控制程序,從而控制生產(chǎn)儀器500的動(dòng)作。
[0071]控制程序執(zhí)行部305從執(zhí)行用控制程序保管部302依次讀出代碼,執(zhí)行生產(chǎn)儀器500的控制所需的程序。
[0072]圖2是本實(shí)施方式所涉及的開發(fā)用計(jì)算機(jī)200的詳細(xì)結(jié)構(gòu)框圖。
[0073]下面,使用圖1以及圖2,說(shuō)明開發(fā)用計(jì)算機(jī)200的功能。
[0074]如圖1所示,開發(fā)用計(jì)算機(jī)200具有控制器通信部201 (發(fā)送側(cè)通信部、接收側(cè)通信部)、控制程序管理部202、以及服務(wù)器通信部203 (發(fā)送側(cè)通信部、接收側(cè)通信部)。
[0075]控制器通信部201經(jīng)由通信線路401進(jìn)行與控制器300的通信。
[0076]控制程序管理部202對(duì)控制程序220進(jìn)行管理。另外,控制程序管理部202將控制程序220變換成執(zhí)行用控制程序。將控制程序220變換成執(zhí)行用控制程序是指,為了在控制器300 (PLC的一個(gè)例子)中執(zhí)行,而對(duì)控制程序220實(shí)施所需的處理,生成執(zhí)行用控制程序。
[0077]服務(wù)器通信部203經(jīng)由通信線路400在與管理服務(wù)器100之間進(jìn)行通信。
[0078]另外,如圖2所示,控制程序管理部202具有控制程序存儲(chǔ)部227、執(zhí)行用程序變換部221、密鑰生成部223、解密部224、用戶操作接受部222、以及公司管理部226。
[0079]控制程序存儲(chǔ)部227將控制程序220存儲(chǔ)至開發(fā)用計(jì)算機(jī)200所具有的存儲(chǔ)裝置。
[0080]執(zhí)行用程序變換部221將控制程序220變換成執(zhí)行用控制程序。另外,執(zhí)行用程序變換部221將執(zhí)行用控制程序變換成控制程序220。
[0081]密鑰生成部223生成控制程序220的閱覽、控制程序220的執(zhí)行所需的密鑰。
[0082]解密部224解密控制程序220的閱覽、控制程序220的執(zhí)行所需的密鑰。
[0083]用戶操作接受部222 (發(fā)送側(cè)接受部、接收側(cè)接受部)接受用戶的操作,決定由執(zhí)行用程序變換部221進(jìn)行的處理。
[0084]公司管理部226對(duì)開發(fā)用計(jì)算機(jī)200的所屬公司進(jìn)行管理。
[0085]圖3是本實(shí)施方式所涉及的管理服務(wù)器100所具有的用戶管理表101的結(jié)構(gòu)圖。
[0086]下面,使用圖1以及圖3,對(duì)管理服務(wù)器100的功能進(jìn)行說(shuō)明。
[0087]如圖1所示,管理服務(wù)器100具有用戶管理表101、用戶通信部102(服務(wù)器側(cè)通信部)。
[0088]用戶管理表101是對(duì)與利用控制系統(tǒng)800的用戶,例如進(jìn)行控制程序220的開發(fā)、維護(hù)等的用戶相關(guān)的信息進(jìn)行管理的表。
[0089]用戶通信部102經(jīng)由通信線路400與開發(fā)用計(jì)算機(jī)200進(jìn)行通信。
[0090]如圖3所示,用戶管理表101具有用戶表110、所屬公司表