控制装置监控系统以及控制装置的监控方法

文档序号:6532683阅读:334来源:国知局
控制装置监控系统以及控制装置的监控方法
【专利摘要】为了监控PLC(1)的动作状态而监控对控制对象(5)进行控制的多个PLC(1)的动作状态的PLC监控系统(10)的特征在于,PLC(1b)从与自身不同的PLC(1a)获取由该PLC(1a)正在执行的用户程序所输出的控制命令,并基于获取到的控制命令,生成验证用数据。并且,PLC(1b)使用验证用数据,或验证控制命令的发送源的PLC(1a)是否感染了病毒,或将验证用数据发送给PC(2),通过PC(2)将该验证用数据显示在显示装置中,从而用户验证PLC(1a)的病毒的感染。
【专利说明】控制装置监控系统以及控制装置的监控方法

【技术领域】
[0001] 本发明涉及对控制装置的动作进行监控的控制装置监控系统以及控制装置的监 控方法。

【背景技术】
[0002] 计算机病毒等恶意性软件(以下,称为病毒)至今在一般的个人计算机(以下, 称为PC(Personal Computer))中是一种构成威胁的存在。作为这种病毒的代表,已知特洛 伊木马等。这些病毒从FD(FleXibleDi Sk)等外部介质、邮件、因特网上的Web站点等各 种各样的路径侵入至计算机中,不正当地进行盗取信息、改写信息等动作。如上所述,这样 的病毒的威胁虽然仅仅在现有PC中认识到,但是近几年,在可编程逻辑控制器(以下,称 为 PLC(programmable logiccontroller))中,也报告出了感染例。例如,stuxnet 等,经由 USB (Universal Serial Bus)存储器等侵入至开发用PC,在从开发用PC向PLC下载用户程 序时,病毒进入PLC。由此,在PLC中,也需要采取病毒对策。
[0003] PLC是限定于设备(plant)控制等特定的目的而利用的计算机。在这样的PLC中, 用户在开发用PC上生成用户程序,该用户程序从开发用PC被下载至PLC。这里,如果开发 用PC受到病毒感染,则在下载用户程序时,开发用PC上的病毒有可能被下载至PLC。
[0004] 此外,为防备障碍,较多运用搭载了同一用户程序的多个PLC的多重化构成,并大 多考虑利用了该多重化构成的软件的可靠性提高技术。
[0005] 例如,在专利文献1中公开了具备多个处理器,且使主要进行通信处理的处理器 和进行控制对象设备的控制的处理器独立的控制器以及其控制方法。
[0006] 此外,在专利文献2中公开了将数据分割为规定的数据量,根据分割后的各个数 据生成认证数据,对该认证数据进行二元运算,按照运算结果和期待值是否一致来进行认 证的电子设备、游戏机、主控制基板、外围基板、认证方法以及认证程序。
[0007] 另外,在专利文献3中公开了将系统总线控制装置和存储器装置进行2重化的2 重化存储器系统。
[0008] 并且,在专利文献4中公开了使用从用户程序的命令的N周期前开始至当前为止 的所有输入值数据以及输出值数据,进行控制程序的命令执行结果数据的显示的过程控制 控制器的故障分析支持系统。
[0009] 在先技术文献
[0010] 专利文献
[0011] 专利文献1 JP特开2004-094473号公报
[0012] 专利文献2 :JP特开2011-030607号公报
[0013] 专利文献3 :JP特开平08-016484号公报
[0014] 专利文献4 :JP特开2001-014027号公报


【发明内容】

[0015] 发明要解决的课题
[0016] 病毒在用户没有注意到的情况下操作设备等的控制对象,导致产生控制对象的误 动作和事故。因此,病毒有可能会对管理和保有控制对象的用户、利用该控制对象的终端用 户带来不好的影响。但是,针对不与因特网等外部线路连接的PLC的病毒侵入方法,与PC 相比,是有限的。例如,认为在为了软件更新而从软件开发用PC(开发用PC)或运用管理用 PC进行下载时会许可病毒的入侵的情况较多。
[0017] 鉴于这样的背景而完成了本发明,本发明以监控PLC的动作状态作为课题。
[0018] 用于解决课题的手段
[0019] 为了解决上述课题,本发明是一种具备多个对控制对象进行控制的控制装置的控 制装置监控系统,在该控制装置监控系统中,上述控制装置具有控制部,该控制部从不同于 自身的其他控制装置获取输出了上述其他控制装置执行的程序的、对上述控制对象进行控 制的控制信息,并基于获取到的上述控制信息,生成动作验证用数据。
[0020] 将在实施方式中适当说明其他的解决手段。
[0021] 发明效果
[0022] 根据本发明,能够监控PLC的动作状态。

【专利附图】

【附图说明】
[0023] 图1是第1实施方式涉及的PLC监控系统的构成图。
[0024] 图2是表示第1实施方式涉及的PLC的硬件构成例的图。
[0025] 图3是表示第1实施方式涉及的PC的硬件构成例的图。
[0026] 图4是表示第1实施方式涉及的PLC监控系统中的信息流动的图。
[0027] 图5是表示第1实施方式涉及的PLC监控处理的动作例的时序图。
[0028] 图6是表示第1实施方式涉及的PLC监控处理的其他动作例的时序图。
[0029] 图7是表示在第1实施方式涉及的PLC监控系统中所使用的帧的格式例的图。
[0030] 图8是表示第1实施方式涉及的PLC中的帧发送处理的详细步骤的流程图。
[0031] 图9是表示第1实施方式涉及的PLC中的帧接收后处理的步骤的流程图。
[0032] 图10是表示将第1实施方式涉及的PLC监控系统的验证用数据图表化的例子的 图。
[0033] 图11是表示第1实施方式涉及的监控程序表更新处理的步骤的流程图。
[0034] 图12是表示第1实施方式涉及的监控程序表的构成例的图。
[0035] 图13是表示第2实施方式涉及的PLC监控处理的动作的流程图。
[0036] 图14是表示第3实施方式涉及的PLC监控系统中的信息的流动的图。

【具体实施方式】
[0037] 接着,针对用于实施本发明的方式(称为"实施方式"),适当参照附图来进行详细 说明。
[0038][第1实施方式]
[0039](构成)
[0040] 图1是第1实施方式涉及的PLC监控系统的构成图。
[0041] 作为控制装置监控系统的PLC监控系统10具有:作为控制装置的PLCl(la、lb)、 作为管理装置的开发用PC(以下,仅称为PC2)、HUB (设备)3、PI/0 (Process Input/Output : 设备)4和控制对象5。
[0042] 针对PLC1以及PC2,详细情况将后述。
[0043] 在PLC监控系统10中,成为2重化构成的PLCla、lb经由现场网络(field network) 7,与HUB3连接。这里,如后所述,HUB3进行过滤和网络的中继等。这里的过滤指 的是,不允许从后述的从属方的PLC1发送的帧的PI/04通过,而许可从后述的主方的PLC1 发送的帧的PI/04通过的功能。此外,所谓网络的中继指的是,将HUB3从一方PLC1接收到 的控制命令(控制信息)发送到PI/04,并且也向另一方PLC1发送的功能。
[0044] HUB3经由现场网络8,与对控制对象5进行控制的装置、即PI/04连接。
[0045] 在PI/04中搭载有功能不同的多个设备(device),根据固有的设备编号管理各个 设备。PLC1也能够通过指定设备编号来访问任一个设备。
[0046] 此外,经由现场网络6,与各PLC1连接用于进行软件更新和远程控制的PC2。
[0047] 上述的构成是作为控制系统的一般构成。
[0048] 这里,PLCla、lb中的一方成为具有对控制对象5进行控制的权利(主方权)的主 系统(以下,将成为主系统的PLC1适当称为主方),另一方成为不具有主方权的从系统(以 下,将成为从系统的PLC1适当称为从属方)。并且,在主方因故障等而不能继续工作时,能 够对主方/从属方关系进行切换。
[0049] 首先,先将PLCla设为主方,将PLClb设为从属方。由于从属方的PLClb能够应对 主方的PLCla的突发的切换请求,所以PLClb通过现场网络7来获取PLCla在存储器中所 持有的数据和生存状态。
[0050] 这里,将本实施方式中的现场网络7、8的通信方式设为以帧单位发送数据。即,是 以下的方式:一方的PLClb对PI/04、另一方的PLCla等发送目的地的装置,以帧单位经由 现场网络7的线路而发送数据,成为其目的地的发送目的地的装置接收发送的帧。
[0051] 如上所述,HUB3中继现场网络7、8,对帧进行监控。对PLC1以及PI/04赋予固有 的地址,将该地址赋予至帧的头部信息来进行发送。在帧中,如后所述,能够对帧的头部或 者数据部分附加表示发送源的PLC1为主方还是从属方的主方识别码。通过该主方识别码, 实现以下过滤功能:HUB3向PI/04仅发送从具有控制对象5的控制权的主方发送的帧,而 不能向PI/04发送从从属方发出的帧。
[0052] 如图1所示,如果PLC1成为多重化构成,则即使为了软件的更新而停止该多重系 统中的PLC1之中的1个,则其他的PLC1也继续动作。对PLC1的软件的更新如果是经由现 场网络6下载的,则通过仅仅指定执行下载的PLC1的地址,就能够进行软件的更新,而不会 影响动作持续过程中的其他的PLC1。由此,病毒虽然有可能侵入由于下载用户程序112(图 3)而停止的PLC1,但是不会侵入动作持续过程中的PLC1。在该时间点,成为在动作持续过 程中健全的PLC1和有病毒感染的可能性的PLC1同时存在的状态,如果比较这2种PLC1的 状态,则能够确定病毒的感染。在本实施方式中,通过由健全的动作持续过程中的PLC1验 证刚刚实施下载后的PLC1的动作,从而确定病毒的感染。
[0053] (PLC 的构成)
[0054] 图2是表示第1实施方式涉及的PLC的硬件构成例的图。
[0055] PLC1 具有:主存储器 110、CPU (Central Processing Unit) 120、输入装置 130、输出 装置140和存储装置150。
[0056] 在主存储器110中,展开控制程序(控制部、发送侧的控制部、接收侧的控制 部)111、用户程序112、PI/0驱动器113、主方权控制程序114、数据生成程序115、验证程序 116等,通过CPU120来执行。
[0057] 控制程序111或者对各程序112?116进行统一控制,或者进行监控程序表151 的更新。S卩,各程序112?116是在控制程序111上执行的程序。控制程序111是例如 OS (Operating System)等。
[0058] 用户程序112是用于对控制对象5进行控制的程序(由控制装置执行的程序),用 户通过PC2(图1)开发并下载至PLC1。
[0059] ΡΙ/0驱动器113是用于控制PI/04的驱动器。ΡΙ/0驱动器113进行以下处理:生 成并发送以PI/04为目的地的发送帧的处理;和接收来自PI/04的帧的处理。在二重化构 成的PLC1中,不仅能够处理从PI/04发送给PLC1的发送帧,而且能够处理对方系统PLC1 发送的以PI/04为目的地的发送帧、和从对方系统PLC1发送给本系统PLC1的发送帧。
[0060] 主方权控制程序114进行主方权的切换。另外,在PC2进行主方权的控制或者进 行用户的手动操作下的主方权的切换的情况下,可以省略PLC1中的主方权控制程序114。
[0061] 数据生成程序115生成用于进行病毒的感染验证(以下,仅称为"验证")的数据、 即动作验证用的数据(验证用数据251 (图3))等。
[0062] 验证程序116是基于由数据生成程序115生成的验证用数据251等,验证PLC1是 否感染了病毒的程序。另外,在由PC2进行验证的情况下,可以省略验证程序116。
[0063] 此外,在存储装置150中保存后述的监控程序表151。
[0064] 在由PLC1进行验证的情况下,有时生成图3的验证用数据251,并将其保存在存储 装置150中。
[0065] 另外,本硬件构成清楚地分离了主存储器110和存储装置150,但是即使是保存在 存储装置150中的信息存在于主存储器上的构成,也能够实现本实施方式。
[0066] (PC 的构成)
[0067] 图3是表示第1实施方式涉及的PC的硬件构成例的图。
[0068] PC2具有主存储器210、CPU220、输入装置230、显示装置240和存储装置250。
[0069] 在主存储器210中展开控制程序(控制部)211、下载程序212、验证程序213等, 由CPU220执行。
[0070] 控制程序211对各程序212、213进行统一控制。即,各程序212、213是在控制程 序211上被执行的程序。控制程序211是例如0S等。
[0071] 下载程序212将保存在存储装置250中的用户程序112下载至PLC1 (图1)。
[0072] 验证程序213是基于从PLC1发送来的验证用数据251等,验证PLC1是否感染了 病毒的程序。另外,在由PLC1进行验证的情况下,能够省略验证程序213。
[0073] 此外,在存储装置250中,保存由用户开发的用户程序112和从PLC1发送的验证 用数据251等。
[0074] 验证用数据251是记录与怀疑病毒感染的用户程序112相关的举动的数据。详细 情况后述,验证用数据251是从作为由PLC1监控用户程序112的举动的结果的监控程序表 151,提取了向PI/04输出的输出值等的特定信息。验证用数据251的具体例子在图10中 后述。
[0075](信息的流动)
[0076] 图4是表示第1实施方式涉及的PLC监控系统中的信息流动的图。另外,图4中 的符号与图1相同,省略针对各个构成要素的说明。
[0077] 在此,设保存在PC2中的用户程序112感染了病毒。另外,在图4中,用点来表示 感染了病毒的设备。
[0078] 首先,在用户程序112的下载开始前,PLCla暂时停止,由各PLCla、lb的控制程序 111执行的主方权控制程序114将主方权从PLCla转移至PLClb。
[0079] 在移动主方权后,为了更新自身的软件,PLC1的控制程序111与PC2的下载程序 212联合起来进行从PC2向PLCla用户程序112的下载(S101)。此时,感染了病毒的用户 程序112被下载至PLCla,PLCla感染病毒。
[0080] 这里,如上所述,HUB3向PI/04送出从主方(PLClb)发送的帧(S102、S103),但是 不向PI/04送出从从属方发送的帧(S104)。即,即使HUB3从主方/从属方这两方接收了 帧,也参照接收帧内的主方识别码来向PI/04发送来自成为主方的PLC1的帧。
[0081] 此外,HUB3将从各PLC1发送的帧向另外的PLC1传送(S105、S106)。该动作与接 收到的帧的主方识别码无关,将来自PLCla的接收帧向PLClb发送,将来自PLClb的接收帧 向PLCla发送。
[0082] 从HUB3传送了帧的各PLC1使用被传送的帧(从另外的PLC1发送的帧),生成验 证用数据251,并使用该验证用数据251来进行病毒的验证。并且,各PLC1将验证用数据 251和感染验证的结果向PC2发送(S107、S108)。
[0083] 另外,如果是具有上述那样的过滤功能或网络中继功能的装置,则能够代替HUB3 来使用。例如,可以是,PLC1自身判定帧的发送源是主方还是从属方,如果是主方则向PI/ 04和对方系统PLC1发送,如果是从属方则仅仅向对方系统PLC1传送。或者,也可以用PLC1 替换HUB3, PLC1使过滤或网络中继用的程序工作。
[0084] 图5是表示第1实施方式涉及的PLC监控处理的动作例的时序图,从PC2感染了 病毒的状态开始。另外,图5中的PLC1的处理是作为PLC1中的控制部的控制程序111所 进行的处理。
[0085] PLCla暂时停止,将主方权转移到PLClb,PLClb成为主方,PLCla成为从属方。
[0086] 并且,PC2向PLCla发送用户程序112(S201),PLCla接收所发送的用户程序 112 (S202)。此时,设从PC2向PLCla感染了病毒。另一方面,由于PLClb不进行下载,所以 没有感染病毒。以后,有时将PLCla适当称为"感染PLC",将PLClb适当称为"正常PLC"。
[0087] 如上所述,PLCla为了软件更新而暂时停止,通过将主方权转移至PLClb,从而 PLClb成为主方,PLCla成为从属方。
[0088] 在结束从PC2的下载后,再次起动PLCla,直至病毒的验证处理结束为止,一直设 定为PLClb为主方、PLCla为从属方。
[0089] 在PLC1感染了病毒的情况下,PLC1内部的存储器(图2的主存储器110)和存储 设备(图2的存储装置150)的破坏、向其他控制装置的感染等会成为威胁,但是成为最大 威胁的举动是对控制对象5(图1)的不正当操作。PLC1所控制的控制对象5由于包含发电 设备等误动作所带来的影响会较大的设备,所以应当最优先防止控制对象5的不正当的操 作。
[0090] PLC1为了进行控制对象5的操作,需要操作PI/04。因此,在本实施方式的构成中, 需要防止感染了病毒的PLCla向PI/04发行不正当的控制命令,从而该PI/04执行该控制 命令后将不正当的输出发送至控制对象5。
[0091] 如上所述,PLCla是从属方,所以即使PLCla的用户程序112发行了控制命令,也 不能控制P1/04。
[0092] 另一方面,PLClb成为主方,所以PLClb的用户程序112将用于对控制对象5进行 控制的控制命令A作为帧而经由HUB3向PI/04发送(S203)。
[0093] HUB3将所发送的控制命令A向PI/04和PLCla传送(S204)。
[0094] PI/04执行从HUB3发送的控制命令A (S205),并对控制对象5 (图1)进行控制。
[0095] 另一方面,如果PLCla从HUB3接收控制命令A (S206),则PLCla的数据生成程序 115基于控制命令A,生成验证用数据251,验证程序116使用该验证用数据251,进行验证 作为控制命令A的发送源的PLClb是否感染了病毒的验证处理(S207)。并且,PLCla将验证 结果发送给PC2 (S208),接收到验证结果的PC2将验证结果显示在显示装置240中(S209)。
[0096] 另外,验证处理的结果也可以是,仅仅在由PLCla判定为怀疑PLClb感染了病毒的 情况下,PLCla向PC2发送怀疑PLClb感染了病毒的意思的警告。
[0097] 此外,作为感染PLC的PLCla将不同于控制命令A的控制命令B作为帧而连续发 送给 PI/04(S210)。
[0098] 此时,HUB3判别该帧是来自从属方的帧发送,不向PI/04发送。
[0099] 另一方面,HUB3将从PLCla接收到的帧传送给PLClb (S211)。
[0100] 作为即使从属方发行了控制命令也不能控制PI/04的方法,考虑以下的3个方法。
[0101] (1)从属方将自身识别为从属方,从属方的软件不向PI/04发行控制命令。
[0102] (2)即使PI/04从主方/从属方这两方接收了控制命令,也仅仅执行来自主方的控 制命令。
[0103] (3)包含控制命令等的帧具有表示发送源为主方的主方识别码,HUB3仅仅向PI/ 04发送具有该主方识别码的帧,等等。
[0104] 在本实施方式中使用的方法是方法(3),但是也可以使用方法(1)、(2)。
[0105] 此外,针对主方识别的方法,不限于基于主方识别码的方法。HUB3或PI/04也可 以具有存储地址或节点编号的功能、和在接收帧时检查发送源的装置的功能。在该情况下, HUB3或PI/04判定帧的发送源的装置,仅发送/执行来自主方的接收帧。在切换主方和从 属方时,PLC1发送通知主方/从属方切换的专用帧,变更存储在HUB3或PI/04中的主方的 地址和节点编号即可。
[0106] PLClb如果从HUB3接收控制命令B (S212),则PLClb的数据生成程序115基于控制 命令B,生成验证用数据251。并且,验证程序116使用该验证用数据251,进行如下的验证 处理:验证作为控制命令B的发送源的PLCla是否感染了病毒(S213)。并且,PLClb向PC2 发送验证结果(S214),接收到验证结果的PC2将验证结果显示在显示装置240中(S215)。
[0107] 另外,验证处理的结果也可以是,仅仅在由PLClb判定为怀疑PLCla感染了病毒的 情况下,PLClb将怀疑PLCla感染了病毒的意思的警告发送给PC2。
[0108] 在1个PLC监控系统10中并不是存在多个成为主方的PLC1,成为主方的PLC1必 需是1个。因此,为了使在软件更新后再次起动的PLCla再次获取主方权而成为主方,必需 等待当前作为主方的PLClb放弃主方权。由此,无论PLClb是否为主方,PLCla感染的病毒 即使强制使PLCla成为主方,只要PLClb不是放弃主方权而无法获得主方权,就不能对PI/ 04发行有效的控制命令。针对主方权的管理方法也考虑几个手段,但是在本实施方式中,主 方权的管理由在PLC1的控制程序111上执行的主方权控制程序114进行。并且,在本实施 方式中,如上所述,在发送控制命令的帧时,通过对该帧赋予主方识别码,从而HUB3进行主 方/从属方的识别。
[0109] 如果采用某些方法,感染了病毒的PLCla強制获取主方权,则在PLCla、lb都成为 主方的情况下(两个PLC1主方状态),即在PLCla、lb的每一个都要尝试有效且不同的控制 的情况下,作为设备的HUB3或者PI/04检测两个PLC1的主方状态。并且,HUB3或者PI/04 将通知两个PLC1的主方状态的帧发送给PLCla、lb,并强制停止接收了该通知的PLCla、lb。 艮P,作为设备的HUB3或者PI/04如果检测到各个PLCla、lb (控制装置)想要对控制对象5 分别同时尝试有效且不同的控制,则向PLCla、lb分别通知各个PLCla、lb (控制装置)分别 想要对1个控制对象5尝试有效且不同的控制的情况。
[0110] 这样,能够减小对控制对象5的病毒的不正当操作引起的影响。
[0111] 主方的切换方法除了在PLC1中发生了故障等时的故障时切换外,也有PC2向PLC1 指示主方的切换的有计划的切换。此外,虽然有时也使用用户有意切换PLC1的主方的方 法,但是在该情况下,担心潜伏在PC2中的病毒成为用户而向PLC1发行主方切换命令。作 为此时的不正当操作防止手段,考虑预先在PLC1中设定固有的密码等,如果能够认证密码 则受理主方切换命令。
[0112] 到此为止,说明了 HUB3不将从属方(PLClb)的控制命令向PI/04发送,承担该任 务的装置可以不是HUB3,而是PI/04。在由PI/04进行控制命令的输出控制的情况下,即使 PI/04从主方和从属方的PLC1这两方接受了控制命令,通过使用与HUB3相同的判别方法, 也能够控制对控制对象5的输出(由第3实施方式记载)。
[0113] 图6是表示第1实施方式涉及的PLC监控处理的其他动作例的时序图。另外,图 6中的PLC1的处理是作为PLC1中的发送侧的控制部或者接收侧的控制部的控制程序111 所进行的处理。
[0114] 图6中的步骤S301?S306的处理与图5的步骤S201?S206相同,所以省略说 明。
[0115] 经由HUB3接收了控制命令A(发送源:PLClb)的PLCla基于接收到的控制命令A, 生成验证用数据251 (S307)。该验证用数据251是用于用户目视而进行异常判别的数据。
[0116] 并且,PLCla向PC2发送验证用数据251 (S308),如果PC2接收验证用数据251,则 在显示装置240中显示验证用数据251 (S309)。将验证用数据251图表化后显示在显示装 置204中,用户目视来判别PLClb是否感染了病毒。
[0117] 之后的步骤S310?S312的处理与图5的步骤S210?S212的处理相同,所以省 略说明。
[0118] 从HUB3接收到控制命令B (发送源:PLCla)的PLClb基于接收到的控制命令B,生 成验证用数据251(S313)。
[0119] 并且,PLClb向PC2发送验证用数据251(S314),如果PC2接收验证用数据251,则 在显示装置240中显示验证用数据251 (S315)。用户目视将验证用数据251图表化后显示 在显示装置204中的情况,判别PLCla是否感染了病毒。
[0120] 另外,PC2可以通过对在步骤S309中获取到的验证用数据251(发送源:PLCla)和 在步骤S315中获取到的验证用数据251 (发送源:PLClb)进行比较,从而进行验证处理。
[0121] (帧格式)
[0122] 图7是表示第1实施方式涉及的PLC监控系统所使用的帧的格式例的图。
[0123] 帧具有以下的构成。
[0124] 帧开始标记使用不会在帧内的其他的部分出现的独特的模式,表示帧的开始。目 的地地址表示成为帧的目的地地址的物理地址。发送源地址表示帧的发送源的物理地址。 主方识别码表示作为相应的帧的发送源的PLC1 (图1)是否为主方,如果是来自主方的帧, 则HUB3向PI/04发送帧。帧长表示帧整体的长度。发送数据主体保存控制命令等信息。帧 检查序列是错误检测码,检查在从帧开始标记至发送数据的结束为止的期间是否发生了位 反转等未预料的变异。
[0125] 发送数据主体具有以下的构成。
[0126] 帧发行时刻表示生成/发行帧的时刻,在计算帧的到达时间时使用。设备编号表 示作为帧的发送目的地的PI/04的编号。在图1等中为了简化,仅图示了 1个PI/04,在存 在多个PI/04的情况下,或者在连接有PI/04以外的设备的情况下,对各PI/04、其他的设 备附加固有的设备编号来进行管理。指令是用于操作PI/04的指令。例如是输入数据的读 入、输出数据的写入等。数据大小是之后继续的控制数据的整体的大小。控制数据是在指 令中所使用的数据。控制数据保存向PI/04发行了输出命令时从PI/04向控制对象5输出 的值等。另一方面,在输入命令中,当从PLC1向PI/04发送时,虽然控制数据为空,但是在 PI/04向PLC1送回从控制对象5得到的输入值时保存输入值。程序标记表示是否存在后续 的程序信息。当程序信息在此后还继续的情况下,将程序标记设为"有效"。程序信息保存 与作为该帧的发行源的用户程序112相关的信息。
[0127] 程序信息具有以下的构成。
[0128] 程序编号保存分别对用户程序112唯一决定的编号。对用户程序112赋予固有的 程序编号,以便能够按照每个执行单位来进行管理。程序更新时刻保存对用户程序112进 行了更新的时刻。程序大小保存用户程序112的整体大小。作为程序信息,除此以外还可 考虑将程序的对象作为原文的消息摘要值(哈希值)等。如果程序被更新,则将程序更新 时刻、程序大小、消息摘要值等也更新为不同的值。
[0129] (帧发送处理)
[0130] 图8是表示第1实施方式涉及的PLC中的帧发送处理的详细步骤的流程图。另 夕卜,适当参照图1。该处理按照图5中的步骤S203、S210、图6中的步骤S303、S310的时刻 来进行。
[0131] 发送至现场网络7的帧在用户程序112发行操作PI/04的控制命令时被生成/发 送。通过将操作PI/04的控制命令作为搭载在PLC1中的软件(控制程序111)的系统调用 (System Call)来准备,如后所述,如果用户程序112调用控制命令,则用户程序112自身作 为上下文(context)而成为退避至存储装置150的状态。从该状态开始,搭载于PLC1中的 软件(控制程序111)能够获取退避的上下文的信息。在PLC1上,起动执行控制命令的PI/ 0驱动器113,同时如果根据从退避的上下文中获取到的信息而将与呼叫源的用户程序112 相关的信息(程序信息)移交给ΡΙ/0驱动器113,则ΡΙ/0驱动器113能够将该程序信息保 存在帧中来发送。接收了该帧的对方系统的PLC1能够根据接收到的帧的程序信息,判别是 哪个用户程序112发行的控制命令。由此,能够根据帧信息确定用户程序112,并以用户程 序112为单位来监控对方系统的PLC1。
[0132] 如果PLC1上的用户程序112执行控制命令(S351),则作为系统调用,处理转移至 PLC1的控制程序111。
[0133] 接着,PLC1上的控制程序111使至此为止执行的用户程序112的信息作为上下文 而退避至存储装置150(S352)。
[0134] 并且,PLC1上的控制程序111从退避的上下文获取信息(S353),生成程序信息 (S354)。
[0135] 作为上下文退避的信息,包含用户程序112所执行的存储器地址等,所以控制程 序111根据作为上下文退避的信息,例如,将用户程序112所执行的存储器地址等设为用户 程序112的固有编号(程序编号),从而能够决定程序编号。同时,如果其他主存储器110 区域中保存有将用户程序112从PC2下载至PLC1时的时刻和大小等信息,则控制程序111 通过检索程序编号,能够获取这些信息。
[0136] 接着,控制程序111将生成的程序信息保存在存储装置150等中(S355),起动PI/ 0驱动器113(S356),将程序信息移交至ΡΙ/0驱动器113。
[0137] 并且,PLC1上的ΡΙ/0驱动器113获取移交的程序信息以及所执行的控制命 令,基于获取到的程序信息以及控制命令来生成帧(S357),将生成的帧发送给现场网络 7(S358)。这样,能够向对方系统的PLC1发送用户程序112的信息。
[0138] 另一方面,向ΡΙ/0驱动器113移交了程序信息的控制程序111通过使退避的上下 文恢复(S359)来恢复用户程序112,对恢复的用户程序112返回进行处理(S360)。
[0139] 并且,用户程序112继续控制处理(S361)。
[0140] (帧接收后处理)
[0141] 图9是表示第1实施方式涉及的PLC中的帧接收后处理的步骤的流程图。另外,适 当参照图1。此外,按照图5的步骤5206、5207、5212、5213、图6的步骤5306、5307、5312、 S313的定时来进行该处理。
[0142] 首先,ΡΙ/0驱动器113接收来自对方系统的PLC1的帧(S401)。
[0143] 这样,PLC1的控制程序111开始监控程序表151的更新处理(S402),对用户程序 112进行插入,使执行中的处理中断(S403)。
[0144] 接着,PLC1的控制程序111获取帧的程序信息(S404),使用获取到的程序信息等 来更新监控程序表151 (S405)。步骤S405的详细情况将在图11中后述。
[0145] 如果监控程序表151的更新完成,则控制程序111结束更新处理(S406),再次开始 执行用户程序112(S407)。
[0146] 之后,控制程序111开始对登记在监控程序表151中的用户程序的举动进行检查 的验证处理(S408),对用户程序112进行插入,使执行中的处理中断(S409)。
[0147] 并且,控制程序111参照监控程序表151的记录(S410)。并且,数据生成程 序115基于保存在所参照的记录中的数据,生成成为监控对象的用户程序的验证用数据 251 (S411)。进一步,验证程序116基于该验证用数据251进行验证(S412)。此时,如图6 所示,在由PC2进行验证的情况下,可以是验证程序116不进行验证处理,而是停留在步骤 S411的验证用数据251的生成中,并向PC2发送该验证用数据251。
[0148] 并且,如果步骤S412的验证处理完成,则控制程序111向PC2发送验证结果,控制 程序111结束验证处理(S413),再次开始执行用户程序112(S414)。
[0149] 另外,按照每个固定时间间隔周期性地进行步骤S408?S414的处理。
[0150] PLC1这样更新/参照监控程序表151来实施验证的处理。
[0151] (验证用数据例)
[0152] 以下说明验证用数据251的详细情况。
[0153] 作为验证的方法,考虑以下方法:对PLC1预先设定验证模式并在PLC1内部进行验 证的方法;和准备在PC2中将用户程序的举动图表化的应用且由用户自身判断用户程序的 妥当性的方法。
[0154] 作为病毒潜伏在PLC1中的方法,考虑几个,存在以下几种方法:已有的用户程序 112的改写、或者完全重新生成另外的用户程序112等。因此,有可能病毒潜伏着的用户程 序112被限定在具有更新的痕迹的程序。但是,在本实施方式的状态中,由于PLCla处于进 行了软件(用户程序112)的更新的状态,所以用户不能判断是用户正在有计划地更新用户 程序112还是潜伏在PLCla中的病毒正在进行更新。
[0155] 因此,在本实施方式中,在发现了一方系统的PLC1的用户程序112被变更的痕迹 的情况下,由作为其他系统的PLC1监控该用户程序112,如果判断为该用户程序112的举动 中有异常,则该用户程序112判断为由病毒进行了窜改。验证用数据251是在进行监控的 PLC1或者PC2的存储装置150、250上记录了在成为监控对象的PLC1中具有变更后的痕迹 的程序的举动的数据,成为判断该程序是被病毒窜改的还是通过软件的更新而被变更的手 段。
[0156] 图10是表示第1实施方式涉及的将PLC监控系统中的验证用数据图表化的例子 的图。
[0157] 验证用数据251从后述的监控程序表151中保存特定的用户程序112进行特定的 动作时的参数。图10的例子是,针对由记录在监控程序表151中的用户程序112向特定的 PI/04发行的输出值,数据生成程序115将验证用数据251作为数字的罗列(CSV文件等) 来提取,并将其图表化后显示在PC2的显示装置240中的例子。
[0158] 另外,在图10中,纵轴表示用户程序112的输出值,横轴表示用户程序112中的指 令的执行次数。
[0159] 在图5所示的步骤S207、S213中,PLC1的验证程序116也可以基于对方系统PLC1 中的用户程序112的输出的举动等,判定对方系统PLC1是否感染了病毒。此外,在图6所 示的处理中,在步骤S315中,通过PC2在显示装置240中显示图10所示的图表,从而促成 用户确认PLC1是否感染了病毒。
[0160] 虚线1011和虚线1012表示用户预先设定的输出值所允许的上限和下限。此外, 标记1001?1009表不第1次至第9次的用户程序112的输出值。在该例子中可知,标记 1001?1004收敛在上限1011和下限1012之间,处于允许范围内。但是,标记1005、1006、 1008U009是比上限1011高的输出值,取了允许范围外的值。根据该图表,用户和验证程序 116能够通过存在由于用户程序112被病毒改变的情况而验证为存在成为取允许范围外的 值的用户程序112的可能性。
[0161] 另一方面,标记1007是明显比其前后的标记小的值。此时,如果存在用户程序112 被病毒改变而使输出值急剧减小或增加导致对控制对象5赋予过剩的负荷的可能性,则用 户和验证程序116也能够判断出。
[0162] 这样,通过将登记在监控程序表151中的用户程序112的举动图表化,用户和验证 程序116能够检查病毒的潜伏。此外,在验证程序116进行验证时,在PLC1中预先设定如 上所述的验证基准,验证程序116基于设定的基准,进行验证即可。这样,PLC1的验证程序 116和PC2的验证程序213检查上述的输出值的允许范围检查、输出值的连续性的检查等, 如果有异常,则能够在PC2中显示警告。作为检查的参数,在本实施方式中以PI/04的输出 值为例进行了例示,但是检查的参数可以考虑其他各种各样的参数。例如,可以考虑检查特 定命令的发行频率,如果以异常的频率发行,则作为病毒引起的不正当操作来进行警告等。
[0163] 此外,通过将监控程序表151作为日志信息而提供给PC2,可以从该日志信息中分 析病毒的举动。另外,还考虑到进行过验证的PLC1不管是否有病毒潜伏都有可能会判断成 潜伏有病毒,所以优选止于发出警告,为了提高可用性而不设为系统的停止等状态。除此以 夕卜,也能够仅仅使判断为有病毒潜伏的程序、或者由该病毒操作着的PI/04停止,并将其设 为缩退运行状态。在该情况下,控制程序111进行以下处理:从验证程序116接受通知,接 受病毒潜伏着的用户程序112的编号,使该用户程序112的处理停止。
[0164] (监控程序表更新处理)
[0165] 图11是表示第1实施方式涉及的监控程序表更新处理的步骤的流程图。该处理 按照图9的步骤S405的定时来进行。
[0166] 监控程序表151的生成/更新如下。控制程序111比较从来自对方系统PLC1的 接收帧得到的对方系统的用户程序112的信息、和本系统的用户程序112的信息。在虽然 对方系统中存在但是本系统中不存在、或者即使在对方系统和本系统中是同一程序编号但 是用户程序112的信息有差异的情况下,在监控程序表151中登记该程序的信息。在监控 程序表151中登记过一次的用户程序112在以后每次从对方系统PLC1接收信息时都在监 控程序表中追加/更新自身的信息。这样,用户程序112持续在监控程序表151中记录进 行过变更的用户程序112的举动。
[0167] PLC1上的控制程序111如果从对方系统的PLC1接收了帧(S501),则获取接收 到的帧的内容,并从监控程序表151中检索与保存在帧中的程序编号相同的程序编号 (S502)。
[0168] 并且,控制程序111判定步骤S502的结果是否登记了与监控程序表151相应的程 序编号(S503)。
[0169] 在步骤S503的结果为帧中保存的程序编号已被登记在监控程序表151中的情况 下(S503 -是),控制程序111进入步骤S510的处理。
[0170] 在步骤S503的结果为帧中保存的程序编号未被登记在监控程序表151中的情况 下(S503 -否),控制程序111检索与成为处理对象的程序编号相同的程序编号是否存在于 本PLC1中(是否下载完毕)(S504)。
[0171] 步骤S504的处理也可以为了进行本PLC1之中的用户程序112的检索,使用在本 PLC1的存储装置150等中保存的、利用程序编号对下载的用户程序112的信息进行分类而 得到的程序一览表等。
[0172] 控制程序111判定步骤S504的检索的结果在本PLC1中是否存在与成为处理对象 的程序编号相应的用户程序112 (S505)。
[0173] 在步骤S505的结果是与成为处理对象的程序编号相应的用户程序112不存在于 本PLC1中的情况下(S505 -否),控制程序111进入步骤S509的处理。
[0174] 在步骤S505的结果为与成为处理对象的程序编号相应的用户程序112存在于本 PLC1中的情况下(S505 -是),控制程序111为了检查用户程序112是否被变更,从帧之中 获取程序更新时刻(对方系统的PLC1的更新时刻)和程序大小(S506)。
[0175] 接着,控制程序111比较获取到的更新时刻以及程序大小、和在步骤S504中检索 到的本PLC1的用户程序112的更新时刻以及程序大小(S507)。
[0176] 并且,控制程序111判定步骤S507的结果,对方系统的PLC1中的更新时刻以及程 序大小这两者是否与本PLC1中的更新时刻以及程序大小相同(S508)。
[0177] 在步骤S508的结果为更新时刻以及程序大小中的至少一方不同的情况下 (S508 -否),视为用户程序112被变更,控制程序111将帧中保存的程序编号作为监控程 序表151的新记录而进彳丁追加(S509)。
[0178] 另一方面,在步骤S508的结果为更新时刻以及程序大小这两者相同的情况下 (S508 -是),视为用户程序112没有被变更,控制程序111结束监控程序表更新处理。
[0179] 接着,控制程序111获取帧中所保存的指令(S510),判定该指令是否是对控制对 象5执行输出的指令(输出指令)(S511)。
[0180] 在步骤S511的结果为不是输出指令的情况下(S511 -否),控制程序111结束监 控程序表更新处理。
[0181] 在步骤S511的结果为是输出指令的情况下(S511 -是),控制程序111进行以下 处理:将成为处理对象的指令、发行了指令的PI/04的编号、发行该指令时的控制数据追加 登记在监控程序表151的相应程序编号的记录中(S512)。
[0182] 在本实施方式中,控制程序111使用程序大小和更新时刻来进行是否进行了程序 的更新的判定(S508)。除了程序大小和更新时间以外,如果能够得到消息摘要值等其他的 程序信息,则能够用于判定。但是,如果仅仅利用程序大小、或者仅仅利用消息摘要值来进 行判定,则考虑到即使进行了变更但大小还相同、即使是不同的程序消息摘要值也一致等 情况,存在错过程序的改变的可能性。因此,在判定中优选使用多个程序信息。
[0183] 在本实施方式中,仅仅将输出指令登记在监控程序表151中。这是因为,病毒能够 对控制对象5进行不期望的动作仅限于输出指令。由于在这以外的指令中,不能操作控制 对象5,所以在本实施方式中,虽然没有在监控程序表151中进行登记,但是也可以将输出 指令以外的指令登记在监控程序表151中。例如,由于PLC1的主方/从属方的切换命令、 运行中的PI/04的设备停止/重置命令、停止中的PI/04设备的起动命令、PI/04的设定变 更命令等也成为对PI/04的操作,所以也可以将这些信息登记在监控程序表151中。
[0184] (监控程序表)
[0185] 图12是表示第1实施方式涉及的监控程序表的构成例的图。
[0186] PLC1或者PC2为了进行验证,监控用户程序112的举动,所以由监控程序表151管 理成为监控对象的用户程序112。如图12所示,在监控程序表151中,保存要监控的用户程 序112的程序编号、程序更新时刻、程序大小、指令、设备编号、控制数据。
[0187] 控制程序111在每次发送帧时,将指令、设备编号等信息登记在监控程序表151 中。成为被监控的用户程序112的对象的是,不存在于本PLC1中但存在于对方系统的PLC1 中的用户程序112、或在本PLC1和对方系统的PLC1中用户程序112的更新时刻和大小不同 的用户程序。这样的用户程序112虽然有时在有计划地更新软件时被追加/变更,但是也 有可能是潜伏着的病毒追加/变更用户程序112。由此,PLC1或者PC2监控这样的用户程 序112的举动。
[0188] 通过进行图11所示的处理,在监控程序表151中,逐渐记录有可能潜伏着病毒的 用户程序112的输出指令的历史记录。在图12的第1行的例中,程序编号为0x0005的用户 程序112的更新时刻为2011年8月1日14点40分10秒,用户程序112的大小为428字 节,可知,作为命令的内容是,第1次是在设备编号为0xB0000B80的模拟输出设备(A0)中 以长字大小(LONG)来写入OxFFFFllll(WRITE),第2次是在设备编号为OxBOOOOHO的数字 输出设备(D0)中以字大小(WORD)来写入0x0000186D(WRITE)。程序编号相同而输出指令 不同是因为,即使是相同的用户程序112,有时在每次执行时都执行不同的指令。
[0189] 在图12中仅仅记录了一部分信息,但是为了更细地监控作为监控对象的用户程 序112的举动,可以将帧发行时刻、使用的数据的地址等登记在监控程序表151中。
[0190] 如果生成了监控程序表151,则将用户的请求或者固定周期的计时器等设为触发, 数据生成程序115生成验证用数据251。数据生成程序115提取的数据可由用户自由地定 制。例如,在图10的例中,提取特定的用户程序112向特定的PI/04发行输出命令时的输 出值(控制数据)。
[0191] (第1实施方式的总结)
[0192] 根据第1实施方式,二重化构成的一方的PLC1或进行验证,或生成验证用数据 251,由此能够检查怀疑感染了病毒的另一方的PLC1。
[0193] 这样,根据本实施方式,即使多重化构成的PLC1之中的1个中潜伏有病毒,多重化 构成的其他的PLC1能够检测到该情况,所以能够提高PLC1的安全性。此外,关注有可能下 载的用户程序112感染了病毒的、PLC1中的病毒的特性,采取了对下载的用户程序112和 未进行下载的用户程序112的举动进行验证的方法,所以能够进行比病毒应对补丁等临时 对策更根本性的对策。
[0194] 在本实施方式中说明了能够由感染了病毒的PLC1正确地获取用户程序112的更 新时刻和大小的信息,设想了能够向进行验证的PLC1顺利地发送该信息的情况。病毒的感 染场所如果是用户所利用的程序区域(用户程序112)等的话没有问题,但是如果PLC1的 系统程序的区域(控制程序11UPI/0驱动器113、主方权控制程序114、数据生成程序115、 验证程序116)感染了病毒,则有可能在病毒中将程序的更新时刻和大小的信息改写成合 适的进度表,帧的内容也会被改写。因此,在进行软件的更新时,将这些系统程序的区域设 为禁止写入的状态来进行更新,从而使病毒无法侵入,这是本实施方式的前提。
[0195] 此外,在本实施方式所示的方法中实施了验证处理后,在找不到病毒感染的情况 下,PLC监控系统10对为了软件更新而停止的PLCla和暂时成为主方的PLClb的主方/从 属方进行切换,能够作为软件更新前的状态,使PLCla返回主方,使PLClb返回从属方。
[0196] 但是,感染了病毒的用户程序112只要不进行动作,对方系统PLC1就不能获取该 用户程序112的信息。由此,如果直至上述的主方/从属方切换的时间点为止感染了病毒 的用户程序112没有进行动作,则有可能病毒潜伏着的PLC1成为主方,从而感染了病毒的 主方能够对控制对象5进行控制。为了避免这样的事态,在执行下载后全部强制执行所登 记的用户程序112,由此能够对全部的用户程序112进行验证处理。
[0197] 根据监控程序表151中登记的内容,在病毒有可能潜伏着的情况下,如上所述,进 行了验证的PLC1向PC2发出警告,向PC2提供日志信息。
[0198] 作为病毒潜伏时的举动,考虑用户程序112的更新时刻与其他的用户程序112的 更新时刻明显不同的情况、控制数据值异常大或者小的情况、按照异常的周期写入特定数 据的情况、发行无效的指令的情况等。由于随着控制对象5不同,正常的情况下的举动也不 同,所以很难区别正常的情况和病毒潜伏着的情况,所以优选用户能够按照使用环境和那 时的状况来定制验证功能。
[0199] [第2实施方式]
[0200] 到此为止,在第1实施方式中,以在软件更新中从属方感染了病毒的情况作为了 前提,下面说明在运行中主方感染了病毒的情况。
[0201] 在第1实施方式中,限定了从属方感染了病毒的情况,但是如果存在在PLC1运行 时PC2和PLC1进行通信的手段,则即使是正在更新软件以外的情况,也存在经由PC2主方 /从属方这两个系统的PLC1感染病毒的可能性。
[0202] 如第1实施方式所说明的,由于主方/从属方都具备验证对方系统的程序动作的 手段,所以如果在对方系统所具备的用户程序112之中存在与本系统不同的程序,则PLC监 控系统1能够检测异常。
[0203] 在主方感染了病毒的情况下,对主方感染了病毒的情况进行验证/检测的是从属 方。其中,由于处于感染了病毒的主方能够对控制对象5进行控制的状态,所以是不优选的 状态。由此,从属方经由HUB3从主方获取控制命令,必需对其进行分析并立刻进行验证。此 夕卜,用户从从属方接受在主方潜伏有病毒、或者存在潜伏的可能性的警告后,必需立刻采取 PLC1的停止等手段来避免病毒的影响。
[0204] 如果主方感染了病毒,则还会产生与从属方感染的情况不同的问题。通常,为了在 2重系统中维持热备份(hot standby)状态,从主方对从属方进行数据的复制,由此进行数 据的同步化。如果,在从感染了病毒的主方对正常的从属方进行了数据的复制的情况下,仅 仅采用第1实施方式中说明的方法来检测病毒是很难的。这是因为,感染了病毒的PLC1会 改写进行验证的PLC1的数据,所以存在丢失正常数据的可能性。
[0205] 因此,在第2实施方式中,对从属方从主方接收的同步化数据的妥当性进行验证, 如果妥当则受理同步化数据,在不妥当的情况下,向PC2发出警告。
[0206] 图13是表示第2实施方式涉及的PLC监控处理的动作的定时图,从主方感染的状 态开始。另外,图13的处理是,主方权从PLClb返回PLCla,PLCla对控制对象5进行控制 的状态。表示在该时间点PLCla感染了病毒时的处理。
[0207] PLC1在主方和从属方中使数据同步化的时刻是,PLC1执行控制运算,并将该运算 结果保存在数据区域中的时刻。成为该控制运算的触发的是,PLC1为了从控制对象5获取 物理信息而向PI/04发行输入请求的时候。
[0208] PLCla(主方)将用于对控制对象5进行控制的输入请求A作为帧而发送给PI/ 04(S601)。
[0209] 接收了输入请求A的HUB3将该输入请求A传送至PI/04以及PLClb (从属方) (S602),PLClb 接收输入请求 A (S603)。
[0210] PI/04如果接收到输入请求A,则按照该输入请求A执行控制对象5的控制 (S604),将作为其响应的输入响应A发送至HUB3 (S605)。
[0211] 从PI/04接收到输入响应A的HUB3向PLCla (主方)和PLClb (从属方)传送输 入响应A(S606)。
[0212] 主方和从属方的两个PLC1在通常情况下,预先保存相同的用户程序112,基于相 同的输入响应而采用相同的用户程序112进行运算,所以结果也应该相同。但是,如果哪一 方感染了病毒,则程序的内容不同,所以会输出不同的结果。
[0213] 因此,PLClb如果从PI/04接收到输入响应A (S607),则使用接收到的输入响应A、 和与PLCla中的用户程序112相同的用户程序112,生成用于与从PLCla发送的同步化数据 进行比较的比较用数据(S608)。
[0214] 另一方面,PLCla如果从PI/04接收到输入响应A(S609),则使用用户程序112生 成用于向PLClb发送的同步化数据(S610)。
[0215] 并且,PLCla向HUB3发送同步化数据(S611)。
[0216] HUB3将发送的同步化数据传送给PLClb (S612)。
[0217] PLClb进行对从PLCla发送的同步化数据和在步骤S608中生成的比较用数据进行 比较的比较处理(S613)。
[0218] 并且,PLClb向PC2发送比较处理的结果(比较结果)(S614),接收到比较结果的 PC2将接收到的比较结果显示在显示装置240中(S615)。
[0219] 从PLCla向PI/04发行的输入请求A通过HUB3的网络中继功能,经由现场网络7, 能够被PLClb的ΡΙ/0驱动器113受理。从PLCla向PLClb的同步化数据的通信中,发送帧 的目的地不是PI/04,而是PLClb,所以作为发给自身的帧来接收PLClb。通过ΡΙ/0驱动器 113和现场网络7的构造,在PLCla和PLClb之间,能够进行信息的共享。
[0220] 另外,同步化数据所利用的途经不仅仅是从主方的PLC1向从属方的PLC1的数据 的复制,也能够作为生存监控用的用途来使用。在从属方PLC1不能接收数据同步化帧时, 认为主方PLC1已停止,进行获取主方权的处理和对主方PLC1进行生存确认的处理。PLC1 可以将该生存确认用的信息作为同步化数据,进行步骤S613的比较处理。
[0221] 另外,在图13所示的处理中,虽然向PC2发送了比较处理的结果,但是也可以是仅 仅在比较用数据不一致的情况下,从属方向PC2发送警告。
[0222] 此外,在图13中,虽然从属方进行比较处理,但是也可以由感染了病毒的主方进 行比较处理。此外,图13所示的处理是每隔固定时间进行的处理。
[0223] 这里,在同步化数据的发送中所使用的帧(同步化帧)的格式与图7所示的格式 相同。在同步化帧中,设定成为数据同步化的对象的从属方的编号,作为设备编号。另外, 设备编号是不仅仅包含该设备的编号而且还包含正在执行用户程序112的主存储器110的 地址的值,所以从设备编号还可以知道开始数据同步化的主存储器110的地址的开头。此 夕卜,指令保存数据同步化用的指令。这是与PI/04的指令不同的指令。同步化帧中的控制 数据是用于从主方向从属方进行复制并同步化的数据(同步化数据)。
[0224] 此外,从PLC1向PI/04发行输入请求。此外,在PI/04发送来的输入响应的帧中保 存程序编号。由此,从属方能够知道输入请求应该使用哪个用户程序112来进行运算。艮P, 从属方能够将程序编号和输入请求作为提示,使用同步化数据和相同的用户程序112,生成 用于与同步化数据进行比较的数据(比较用数据)。
[0225] 另外,也考虑在1个用户程序112之中发行多个输入请求的情况。在该情况下,为 了能够确定与用户程序112内的哪个命令相对应,可以对每个输入请求赋予分支编号,并 管理输入请求。
[0226] (第2实施方式的总结)
[0227] 根据第2实施方式,在主方感染了病毒的状态下,即使处于对控制对象5进行控制 的状态,通过利用主方向从属方发送的同步化数据,能够验证病毒的感染。此外,不需要病 毒应对补丁等特别的对策。
[0228] [第3实施方式]
[0229] 到此为止,针对在PLC1为2个的2重系统中连接有HUB3的情况进行了说明,但是 即使是这以外的情况也能够由PLC1进行验证。
[0230] 图14是表示第3实施方式涉及的PLC监控系统中的信息的流动的图。
[0231] 关于图14的?1^(:监控系统10&,在?1^(:1(认、18、1〇为3个的3重系统中,没有 HUB3,直接将PI/04和PLC1(1A、1B、1C)的每一个连接起来进行通信。另外,在图14中,对 与图1相同的构成要素附加相同的符号并省略说明。
[0232] 与第1实施方式相同,以PC2感染了病毒并在PLC1A中下载了病毒的状态为例进 行说明(用点示出感染了病毒的设备)。
[0233] 在控制命令有效时,PI/04向控制对象5进行输出时的判断方法主要考虑以下2 种。
[0234] (a)与上述实施方式相同,在PLC1A?1C之中,仅仅将具有主方权的PLC1的控制 命令和输入请求识别为有效的控制命令。
[0235] (b)如果由PI/04全部接收来自3个(或者多个)PLC1A?1C的控制命令和输入 请求、且来自3个PLC1A?1C的控制命令和输入请求之中2个以上为相同的命令,则将该 控制命令和输入请求识别为有效,向控制对象5输出。即,PLC监控系统10a按照多数表决 来判别有效的控制命令。并且,如果是发行了与其他的2个不同的命令的PLC1,则考虑这是 因为哪些原因导致(例如,感染了病毒),所以用户进行使该PLC1停止等对策。另外,从3 个PLC1A?1C发送的控制命令和输入请求是同一种的用户程序112 (图2)的控制命令和 输入请求。
[0236] 在上述(a)、(b)的情况下,在步骤S700中感染了病毒的PLC1A在步骤S701中向 PI/04发送控制命令。PI/04向PLC1BUC传送该控制命令(S71US712)。
[0237] 同样地,PLC1B、1C在步骤S702、S703中向PI/04发送控制命令,PI/04还将该控 制命令发送给其他的PLC1A?1C,这一点是相同的(S711、S712、S721、S722、S723)。此时, PI/04可以针对从各PLC1A?1C发送的控制命令的内容取多数表决,将具有最多数的内容 的控制命令发送给控制对象5。
[0238] 这里,PLC1A、1B、1C可以基于接收到的控制命令和对其赋予的程序信息,通过在图 3、图4、图7等中示出的步骤来进行验证。
[0239] 此外,各PLC1A、IB、1C进行第1实施方式和第2实施方式所示的处理,将其结果发 送给PC2(S731?S733)。另外,此时,PLC1A、1B、1C使用3个PLC1间的数据来进行第1实 施方式的验证处理(图5的S207、S213)、验证用数据(图6的S307、S313)、第2实施方式 的比较处理(图13的S613)。
[0240] (第3实施方式的总结)
[0241] 根据第3实施方式,即使多重系统PLC之中1个PLC感染了病毒,其他健全的PLC1 也能够进行验证。
[0242] 特别是,通过使用多数表决,能够对病毒迅速地做出应对。
[0243] 另外,在第2实施方式、第3实施方式中,PLCUPC2的硬件构成也与图2、图3所示 的构成相同,各程序111?116、211?213在主存储器110、210中被展开,由CPU120、220 执行。
[0244] 符号说明
[0245] 1 PLC (控制装置)
[0246] 2 PC (管理装置)
[0247] 3 HUB (设备)
[0248] 4 卩1/0(设备)
[0249] 5 控制对象
[0250] 6,7,8 现场网络
[0251] 10 PLC监控系统(控制装置监控系统)
[0252] 110 PLC的主存储器
[0253] 111 PLC的控制程序(控制部、发送侧的控制部、接收侧的控制部)
[0254] 112用户程序(程序)
[0255] 113 ΡΙ/0 驱动器
[0256] 114主方权控制程序
[0257] 115数据生成程序
[0258] 116 PLC的验证程序
[0259] 120 PLC 的 CPU
[0260] 130 PLC的输入装置
[0261] 140输出装置
[0262] 150 PLC的存储装置
[0263] 151监控程序表
[0264] 210 PC的主存储器
[0265] 211 PC的控制程序(控制部)
[0266] 212下载程序
[0267] 213 PC的验证程序
[0268] 220 PC 的 CPU
[0269] 230 PC的输入装置
[0270] 240显示装置
[0271] 250 PC的存储装置
[0272] 251验证用数据(动作验证用数据)
【权利要求】
1. 一种控制装置监控系统,其特征在于, 该控制装置监控系统具备多个对控制对象进行控制的控制装置, 上述控制装置具有:控制部,从与自身不同的控制装置,获取由上述不同的控制装置正 在执行的程序所输出的、对上述控制对象进行控制的控制信息,并基于获取到的上述控制 信息,生成动作验证用数据。
2. 根据权利要求1所述的控制装置监控系统,其特征在于, 上述控制装置的控制部基于所生成的上述动作验证用数据,判别上述不同的控制装置 的动作状态。
3. 根据权利要求2所述的控制装置监控系统,其特征在于, 上述控制装置监控系统具备管理装置, 上述控制装置的控制部向上述管理装置发送所生成的上述动作验证用数据, 上述管理装置具有将接收到的上述动作验证用数据显示在显示装置中的控制部。
4. 根据权利要求1所述的控制装置监控系统,其特征在于, 上述动作验证用数据包括从上述控制装置向上述控制装置所控制的控制对象发送的 信息所包含的输出值。
5. 根据权利要求1所述的控制装置监控系统,其特征在于, 上述控制装置的控制部按每个上述程序单位来保存从上述控制装置向上述控制装置 所控制的控制对象发送的信息,并且 上述控制装置的控制部基于按每个上述程序单位来保存的信息,生成上述动作验证用 数据。
6. 根据权利要求1所述的控制装置监控系统,其特征在于, 上述控制装置监控系统具备与至少2个以上的上述控制装置和上述控制对象之间的 通信路径相连接的设备, 上述设备检测每一个上述控制装置对上述控制对象分别想要尝试有效且不同的控制 的情况, 上述设备向每一个上述控制装置通知每一个上述控制装置对1个控制对象分别想要 尝试有效且不同的控制的情况。
7. 根据权利要求1所述的控制装置监控系统,其特征在于, 上述控制装置的控制部具有: 发送侧的控制部,使用自身正在执行的用户程序,基于从上述控制对象发送的与上述 控制对象的控制相关的信息,生成用于向不同的控制装置发送的同步化数据,并向上述不 同的控制装置发送所生成的上述同步化数据;和 接收侧的控制部,使用与由上述不同的控制装置执行的上述用户程序相同的用户程 序,基于从上述控制对象发送的与上述控制对象的控制相关的相同的信息,生成作为上述 动作验证用数据的比较用数据,并通过对上述不同的控制装置的发送侧的控制部所发送的 同步化数据、和自身生成的上述比较用数据进行比较,从而验证上述不同的控制装置的动 作状态。
8. -种控制装置监控系统,其特征在于,具备: 3个以上的上述控制装置;和 设备,连接在上述控制装置和由上述控制装置控制的控制对象之间,如果从每一个上 述控制装置获取到使用了同一种程序的输出信息,则在获取到的上述输出信息不一致的情 况下,按照多数表决,将多数的输出信息判定为正确的输出信息。
9. 一种控制装置的监控方法,监控对控制对象进行控制的多个控制装置的动作状态, 该控制装置的监控方法的特征在于, 上述控制装置从与自身不同的控制装置,获取由上述不同的控制装置正在执行的程序 所输出的、对上述控制对象进行控制的控制信息,并基于获取到的上述控制信息,生成动作 验证用数据。
10. 根据权利要求9所述的控制装置的监控方法,其特征在于, 上述控制装置的发送侧的控制部, 使用自身正在执行的用户程序,基于从上述控制对象发送的与上述控制对象的控制相 关的信息,生成用于向不同的控制装置发送的同步化数据, 向上述不同的控制装置发送所生成的上述同步化数据, 上述控制装置的接收侧的控制部, 使用与由上述不同的控制装置正在执行的上述用户程序相同的用户程序,基于从上述 控制对象发送的与上述控制对象的控制相关的相同的信息,生成作为上述动作验证用数据 的比较用数据, 通过对上述不同的控制装置的发送侧的控制部所发送的同步化数据、和自身生成的上 述比较用数据进行比较,从而验证上述不同的控制装置的动作状态。
【文档编号】G06F21/55GK104054087SQ201380005269
【公开日】2014年9月17日 申请日期:2013年1月8日 优先权日:2012年1月12日
【发明者】寺江尚, 清水胜人, 益子直也 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1