数据设定装置制造方法

文档序号:7994180阅读:124来源:国知局
数据设定装置制造方法
【专利摘要】在本发明中,将应写入的数据分成最大长度以下的多个分割数据,并计算各个分割数据的偏移量,最初,向PLC传送用于指示向数据区域的开始地址写入规定末端编码的帧,接着,向PLC传送用于指示将最前端的分割数据之外的每个分割数据写入从数据区域的开始地址起相对应的偏移量的位置的帧,最后,向PLC传送用于指示向数据区域的开始地址写入最前端的分割数据的帧。
【专利说明】数据设定装置

【技术领域】
[0001] 本发明涉及一种用于经由网络改写在PLC上设定的变量的技术。

【背景技术】
[0002] 在FA (Factory Automation :工厂自动化)中,通过利用控制系统网络(现场网络) 连接多个从属装置和主机装置(PLC Programmable Logic Controller :可编程序逻辑控制 器)而构成的工业用网络系统来进行生产设备的控制,其中,所述多个从属装置进行各种 生产设备的控制及数据收集,所述主机装置集中管理这些从属装置。另外,设置于各生产线 或者生产据点的PLC经由信息系统网络与上位计算机连接,系统管理者或工程师能够用该 计算机对各系统进行状态监视及后期维护等。
[0003] 通常的PLC具有如下的规格:将梯形图程序(ladder program)等所使用的信息作 为设定变量保存在存储器内,通过从外部计算机改写这些设定变量,来形成能够改变或者 修正(调试)PLC的动作。设定变量的数据类型包括INT型(整数型)、REAL型(实数型) 这样长度固定的类型以及STRING型(字符串型)这样长度可变的类型。在以往的PLC中, STRING型等长度可变数据的上限值被限制为比较小的值(例如,256字节)。
[0004] 像这样决定上限值的理由之一为,长度可变数据会受到来自工业用网络的最大帧 长(在一次数据传送中能够发送的帧的长度)的制约。虽然工业用网络中存在各种标准, 但是,例如,在作为控制系统网络的代表的DeviceNet (开放网络的一种)及CompoNet (开 放网络的一种)等中,最大帧长为500字节左右,很小。由于必须在该限制下从外部计算机 读出或改写设定变量,所以需要如上述那样将长度可变数据控制在256字节左右。
[0005] 以往,从未设想过用PLC处理超过256字节的变量,因此,上述的限制几乎不构成 问题。但是,伴随近年来的PLC的高功能化,开始出现例如使PLC -侧保持数K字节?数Μ 字节的设定变量,期望实现更高级的处理或更灵活处理之类的需求。尽管这样,虽然在PLC 一侧比较容易扩张,但是在实际上,难以扩张作为网络标准的最大帧长。因此,在现有的工 业用网络的框架中需要用于进行接收及发送的结构。
[0006] 在通常的TCP/IP通信中,具有如下的结构(IP fragmentation :IP分片)(例如, 参考专利文献1):在IP数据包的长度超过MTU (Maximum Transmission Unit :最大传输单 元)的情况下,将其分割成多个数据包进行发送,在接收一侧,基于帧头信息,将分散接收 到的数据包连接结合在一起,复原成原来的数据包。但是,工业用网络通常所使用的协议 (例如,CIP(Common Industrial Protocol :通用工业协议))中没有准备这样的分片结构。
[0007] 现有技术文献
[0008] 专利文献
[0009] 专利文献1 :特开2001-313675号公报


【发明内容】

[0010] 发明要解决的问题 toon] 如果由外部计算机来改写长度比最大帧长更大的变量,则不得不采用将数据分为 多个帧来传送的方法。在该情况下,如果能够采用如下的顺序则使安全的,即,在PLC -侧 连接结合分多次接收的数据并恢复成原来的数据之后,替换存储器内的变量。但是,难以在 工业用网络的协议中安装这种顺序。这是因为,工业用网络协议是一种重视实时性及传输 效率的设计,不具有TCP/IP的会话(session)管理这样的结构,因此不能够保证或者判断 是否在PLC -侧无误地接受了全部已分割的数据。
[0012] 因此,本发明人尝试了这样一种顺序:将已分割数据(从变量最前端起的地址)与 偏移量一同发送给PLC,在PLC-侧,每次接收数据就逐次写入存储器内的变量区域。图5 示出了该顺序的一个例子。图5(A)示出了写入PLC的数据,图5(B)按时序示出了从计算 机发送的帧和PLC的存储器的状态。其中,例示了对变量"abc"设定"AB⑶EFG"这一字符 串的顺序。假定1帧能够传输的数据长度为5个字节。另外,向PLC的存储器分配10字节 来作为变量abc的数据区域,在初始状态下,存储" 123456"这一字符串。
[0013] 如图5(A)所示,写入的数据是STRING型的数据,由1』、(:、0』、?、6"各自的字 符编码"41、42、43、44、45、46、47"和末端字符111111的编码"00"这8个字节构成。因为1 帧只能传输5个字节,所以分两次传输。首先,在第一帧中,将最前端起的5个字节的数据 ("AB⑶E"的5个字符编码)与偏移量"0"一起进行传输。若PLC接受该帧,则在变量abc 的偏移量"〇"的地址中写入"AB⑶E"的字符编码。在第二帧中,将剩余的3个字节的数据 ("FG"的字符编码和末端文字的编码)与偏移量"5" 一起进行传输。若PLC接受该帧,则 在变量abc的偏移量"5"的地址中写入"FG"的字符编码和末端文字的编码。由此,完成向 PLC的存储器内写入设定变量的动作。
[0014] 图5的顺序具有简单并容易向工业用网络安装的优点。但是,在该顺序的情况下, 可能产生下面这样的问题。由图5(b)可知,在写入第一帧的数据后到写入第二帧的数据为 止的过渡期间内,PLC的变量abc的数据区域处于"AB⑶E6"的状态。虽然该字符串是非法 数据,但由于符合STRING型的数据结构,所以,在PLC -侧不能够判断该数据是正常还是非 法。如果在该过渡期间内,在PLC上运行的控制程序产生了参考变量abc的处理,则有可能 引起PLC的误动作(意图外动作)。在生产现场,必须在不停止PLC的运转的前提下在线改 变或修正设定变量的情况不少见。因此,必须将因 PLC使用写入未完成的数据而引起误动 作的风险降到最小。此外,其中,例举了 STRING型的数据,但在将以规定的末端编码为末端 的可变长度数据写入PLC的情况下,会产生同样的问题。
[0015] 本发明是为了解决上述问题而提出的,其目的在于提供一种用于简单且安全地执 行向PLC写入可变长度数据的动作的技术。
[0016] 用于解决问题的手段
[0017] 为达到上述目的,本发明的主旨在于,首先向PLC的数据区域的最前端写入末端 编码,然后,在按顺序写入最前端之外的数据后,最后写入最前端的数据,通过采用这一顺 序,以实现在过渡期间内将数据区域内识别为空数据。
[0018] 具体而言,本发明的数据设定装置是一种数据设定装置,其用于经由网络改写PLC 中所设定的变量,其特征在于,具有数据设定单元,所述数据设定单元通过生成特定的帧并 将该帧传送给PLC,来使所述PLC进行该变量的改写,所述特定的帧为至少指示成为改写对 象的变量、从该变量的数据区域的开始地址起的偏移量以及向由所述偏移量指定的位置写 入的数据的帧;在成为改写对象的变量是以规定的末端编码为末端的可变长度数据类型的 变量,并且,应向所述变量写入的数据的整体长度超过1帧能够传送的最大长度的情况下, 所述数据设定单元,将应写入的所述数据分成所述最大长度以下的多个分割数据,并计算 各个分割数据的偏移量,最初,向所述PLC传送用于指示向所述数据区域的开始地址写入 所述规定的末端编码的帧,接着,向所述PLC传送用于指示将最前端的分割数据之外的每 个分割数据分别写入从所述数据区域的开始地址起相对应的偏移量的位置的帧,最后,向 所述PLC传送用于指示向所述数据区域的开始地址写入所述最前端的分割数据的帧。
[0019] 根据该结构,写入数据的过渡期间,即,从开始写入数据到完成写入最后的分割数 据之前的期间内,维持在数据区域的开始地址设定有末端数据的状态。因此,在过渡期间, 即使PLC参考了该变量,PLC也将该变量识别为空(未设定数据)。虽然在变量为空的情况 下的动作由PLC的设计而定,但至少能够将缘于非法数据的异常操作(意图外操作)防患 于未然。
[0020] 由于以上述方式预防了数据改写的过渡期间内的异常动作,所以所述数据设定单 元能够在所述PLC的运转中安全地改写所述变量。在此,所述变量可以是以null编码为末 端的字符串型的变量。另外,所述网络是工业用网络,用于传送所述帧的协议可以是不具有 分片结构的协议。这是因为:工业用网络的1帧能够传送的最大长度比较小,所以优选适用 如本发明这样的基于分割传送的改写。
[0021] 此外,本发明能够确定为包括上述单元的至少一部分的数据设定装置,还能够确 定为具有数据设定装置和PLC的数据设定系统。另外,本发明能够确定为使计算机执行上 述处理的至少一部分的数据设定方法,还能够确定为使计算机执行上述处理的至少一部分 的程序或者记录了该程序的能够由计算机读取的存储介质。每个上述处理或单元只要不发 生技术上的矛盾,就能够自由进行组合。
[0022] 发明效果
[0023] 根据本发明,能够简单并安全地对PLC写入可变长度数据。

【专利附图】

【附图说明】
[0024] 图1是表示工业用网络系统的结构例的图。
[0025] 图2是表示指示PLC设定变量的读取/写入的操作画面的一个例子的图。
[0026] 图3是本发明的实施方式中的STRING型变量的改写顺序的流程图。
[0027] 图4是用于说明本发明的实施方式中的STRING型变量的改写顺序的图。
[0028] 图5是用于说明问题的图。

【具体实施方式】
[0029] 下面,参照附图来说明本发明的优选的实施方式。在下面的实施方式中,例举了在 利用EtherNet/IP(以太网/网际协议)连接的计算机(数据设定装置)和PLC之间,使用 CIP(通用工业协议)的报文通信改写STRING型变量的例子,但本发明的适用范围并不仅限 于此。只要目的是经由网络改写以规定的末端编码为末端的长度可变的数据类型的变量, 则不受网络、协议、数据类型等的局限,都能够很好地应用本发明。此外,由于工业用网络这 种特殊领域的网络能够发送的帧的长度的上限很小,并且,不具有会话管理及分片整理等 的结构,所以可以说是特别适合应用本发明的对象。
[0030] (系统的结构)
[0031] 首先,利用图1,说明工业用网络系统的结构例。
[0032] 图1的工业用网络系统由PLC(Programmable Logic Controller :可编程序逻辑控 制器)200和多个从属装置300构成。在PLC200与从属装置300之间通过控制系统网络 NW2或者内部总线连接。从属装置300具有电源单元、马达单元、计数单元、图像单元、通信 单元、1/〇(输入/输出)单元等。在工厂的生产线等上,这种工业用网络系统用来进行各 种生产设备(马达、自动设备(robot)、传感器等)的控制及数据收集等。
[0033] PLC200经由信息系统网络NW1与计算机100连接。该计算机100例如用于使系统 管理者监视各据点的系统状态,或者使工程师在线进行PLC200及从属装置300的维护等。 能够使用具备显示装置101、输入装置102等的通用个人计算机来作为计算机100,通过CPU 执行保存在计算机1〇〇内的存储装置中的程序,来实现后述的PLC设定变量的读取/写入 功能(数据设定单元)等。
[0034] (PLC设定变量的读取/写入)
[0035] 在PLC200的存储器中,作为设定变量存储有梯形图程序等控制程序所使用的各 种信息,通过计算机100写入或者改写这些设定变量,能够改变或者修改(调试)PLC200及 从属装置300的动作。
[0036] 设定变量的数据类型例如有B00L型(逻辑型)、INT型(整数型)、REAL型(实 数型)、BYTE型、WORD型、STRING型(字符串型)等。B00L型、INT型、REAL型、BYTE型、 WORD型的每一个都是固定长度,分别具有1个字节、2个字节、4个字节、1个字节、2个字节 的数据量。另一方面,STRING型为可变长度,最大具有1986个字节。STRING型变量中存储 以null (空值)字符(末端编码)为末端的字符串,例如,如果是日语这种3个字节的字符, 则能够设定660个字符左右的数据,如果是中文这种4个字节的字符,则能够设定为500个 字符左右的数据。此外,该规格是一个例子,还能够设置长度为数K字节?数Μ字节的数据 的可变长度数据类型。
[0037] 图2示出了由计算机100运行的应用程序(工具)所提供的、PLC设定变量的读取 /写入功能的操作画面的一个例子。例如,若指定作为对象的PLC并启动该功能,则在显示 装置101中显示图2的操作画面20。若用户向框21输入变量名,按下读取按键23,则计算 机100从PLC200取得该变量的当前值,并显示在框22中。图2的上半部分示出了确认到 变量"abc"的当前值为" 123456"的例子。在将变量的值写入PLC200的情况下,在框21中 输入变量名,在框22中输入写入数据,按下写入按键24。由此,从计算机100向PLC200传 送变量的写入要求,在PLC200中改写存储器的数据。图2的下半部分示出了把变量"abc" 的值改写为"AB⑶EFG"的例子。
[0038] 在本实施方式的计算机100中,利用作为CIP提供的服务之一的变量写入要求,向 PLC200写入变量。该要求的报文(message)由服务ID、类(class)ID、变量名、偏移量、写 入数据等构成。对"服务ID"和"类ID"指定变量写入处理。然后,对"变量名"指定作为 写入对象的变量的名称,对"偏移量"指定向从该变量的数据区域的开始地址起的第几字节 写入数据。例如,向PLC200发送将变量名指定为"abc"、将偏移量指定为"4"、将数据指定 为"EFG"的要求报文,由此,向从PLC200的存储器内的变量"abc"的数据区域的开始地址 起的第4个字节的位置写入"EFG"这一数据。
[0039] 任何数据类型的变量基本上都能够使用该变量写入要求来对PLC200的存储器进 行改写动作。但是,在是STRING型变量的情况下,写入数据的长度可能会超过1帧所能够 传送的最大量,因此,根据数据长度,分成多次要求进行处理。下面,对该情况下的顺序进行 详细说明。
[0040] (STRING型变量的改写顺序)
[0041] 参考图3和图4,对STRING型变量的改写顺序进行说明。图3的流程图示出了在 使用多帧发送数据的情况下计算机1〇〇的处理。另外,图4(A)示出了写入PLC200的数据, 图4(B)按时序示出了从计算机100发送的帧和PLC200的存储器的状态。在此,例示了对 变量"abc"设定"AB⑶EFG"这一字符串的顺序。与图5的例子相同,假定1帧能够传送的 最大量为5个字节,在PLC200的存储器中分配10个字节来作为变量abc的数据区域,在初 始状态下,存储有" 123456 "这一字符串。
[0042] 首先,计算机100获取应写入的字符串数据的数据长1和1帧能够传送的最大量 (帧长)m(步骤S10),并且用1对偏移量i进行初始化(步骤S11)。在图4的例子中,1 = 8字节、m = 5字节,i的初始值为8。
[0043] 并且,计算机100向(在写入实际的字符串数据前)PLC200的改写对象变量的数 据区域的开始地址写入末端编码(null)(步骤S12)。具体而言,如图4(B)所示,生成并向 卩^:200发送偏移量为"0"、数据为"00(111111)"的帧。在?^200中,根据该要求,将111111写 入变量abc的数据区域的开始地址。
[0044] 如上所述,用null重置PLC200的数据区域后,将字符串数据分成在最大量以下的 多个分割数据,从后面的分割数据按顺序进行写入。具体而言,直至写入全部的数据为止, 重复一下的处理(步骤S15):以每次变小m长度的方式更新偏移量i的值(在此,如果i〈m, 则向m代入i,向i代入0。)(步骤S13),向从数据区域的最前端起第i字节的位置,写入 从原来的字符串数据的第i字节起的m个字节的分割数据(步骤S14)。在图4(B)的例子 中,在第二帧中,将"DEFG"的字符编码和null编码的5个字节的数据写入偏移量为"3"的 位置,在第三帧中,将剩余的"ABC"的3个字节的字符编码写入偏移量为"0"的位置。
[0045] 根据上面所述的改写顺序,在写入数据的过渡期间,S卩,在从最初写入null到完 成写入最后的分割数据之前的这一期间内,维持在数据区域的开始地址设定null的状态。 因此,即使在过渡期间内PLC200参考了该变量,PLC200也会将该变量识别为空(未设定数 据)。例如,通过将PLC200的控制程序的动作设计为"在变量为空的情况下,判断为异常, 输出错误消息"或者"在变量为空的情况下,使用默认值执行处理",能够防止PLC200的异 常动作(意图外动作)。
[0046] 而且,通过采用这样的改写顺序,能够使PLC -侧保持长度比以往更大的变量,由 此,变量的用途变广,能够期待实现PLC的功能扩张。下面,例示几个设想的用途。
[0047] 在制造物的封装包上打印字符串的情况下,以往,通常使用图像数据(二进制数 据)来进行,在想要根据产品及批次(lot)等来改变打印的字符串时,事先准备各个图案 的图像数据,指定图像的ID等进行切换。若变量的上限值不大,也能够将打印的字符串 本身作为变量进行处理。于是,因为能够改变及追加从外部计算机及HMI (Human Machine Interface:人机界面)打印的字符串,所以维护也变得容易。另外,还能够进行指定字体、 文字颜色、文字长度等条件的扩张。
[0048] 在外部计算机及HMI上显示PLC的错误的情况下,以往,通常的方法是基于从PLC 取得的错误编号,在计算机或者HMI -侧生成错误消息(警示文字、说明文字等)。在该方 法的情况下,需要使计算机及HMI都具有将错误编号与错误消息对应关联的辞典数据。如 果变量的上限值不大,则能够将错误消息本身作为变量保持在PLC内。于是,计算机及HMI 不需要辞典数据,由此,能够实现灵活的系统设计。
[0049] 有时会在安装于PLC的存储卡上以文本文件形式保存生产数据。这时,事先在PLC 中,以作为变量的方式设定形式、批次编号等字符串。同样地,有时还在存储卡中记录系统 错误报告,报告中记述的错误消息等也被作为变量设定于PLC中。与此相反,有时还从存储 卡读出配方信息等文本文件,并设定在PLC中。若考虑到处理中文等多字节文字(4字节), 以往的长度(例如,256字节)不能说是绝对充分的,但如果能够像上述实施方式那样处理 数K字节的字符串,则能够易于应对多字节文字。
[0050] 此外,上述实施方式仅示出了本发明的一个具体的例子,本发明的范围并非仅限 定于这些结构。例如,在上述实施方式中,从后面的分割数据按顺序进行写入动作,但是只 要在最后写入至少开始的分割数据即可,开始的分割数据之外的分割数据的写入顺序是任 意的。另外,在上述实施方式中,作为数据设定装置的一个例子例示了个人计算机,但是当 然也能够使HMI以及其他PLC内的计算机作为数据设定装置起作用。
[0051] 附图标记说明
[0052] 100计算机
[0053] 101显示装置
[0054] 102输入装置
[0055] 200 PLC
[0056] 300从属装置
【权利要求】
1. 一种数据设定装置,用于经由网络改写PLC中所设定的变量,其特征在于, 具有数据设定单元,所述数据设定单元通过生成特定的帧并将该帧传送给PLC,来使所 述PLC进行该变量的改写,所述特定的帧为至少指示成为改写对象的变量、从该变量的数 据区域的开始地址起的偏移量以及向由所述偏移量指定的位置写入的数据的帧; 在成为改写对象的变量是以规定的末端编码为末端的可变长度数据类型的变量,并 且,应向所述变量写入的数据的整体长度超过1帧能够传送的最大长度的情况下, 所述数据设定单元,将应写入的所述数据分成所述最大长度以下的多个分割数据,并 计算各个分割数据的偏移量, 最初,向所述PLC传送用于指示向所述数据区域的开始地址写入所述规定的末端编码 的帧, 接着,向所述PLC传送用于指示将最前端的分割数据之外的每个分割数据分别写入从 所述数据区域的开始地址起相对应的偏移量的位置的帧, 最后,向所述PLC传送用于指示向所述数据区域的开始地址写入所述最前端的分割数 据的帧。
2. 如权利要求1所述的数据设定装置,其特征在于, 所述数据设定单元在所述PLC运转中进行所述变量的改写。
3. 如权利要求1或2所述的数据设定装置,其特征在于, 所述变量是以null编码为末端的字符串型的变量。
4. 如权利要求1至3中任意一项所述的数据设定装置,其特征在于, 所述网络是工业用网络, 用于传送所述帧的协议是不具有分片结构的协议。
5. -种数据设定方法,用于由外部计算机经由网络改写PLC中所设定的变量,其特征 在于, 计算机通过生成特定的帧并将该帧传送给PLC,来使所述PLC进行该变量的改写,所述 特定的帧为至少指示成为改写对象的变量、从该变量的数据区域的开始地址起的偏移量以 及向由所述偏移量指定的位置写入的数据的帧; 在成为改写对象的变量是以规定的末端编码为末端的可变长度数据类型的变量,并 且,应向所述变量写入的数据的整体长度超过1帧能够传送的最大长度的情况下, 所述计算机执行如下的步骤: 分割计算步骤,将应写入的所述数据分成所述最大长度以下的多个分割数据,并计算 各个分割数据的偏移量, 第一写入步骤,向所述PLC传送用于指示向所述数据区域的开始地址写入所述规定的 末端编码的帧, 第二写入步骤,在所述第一写入步骤之后,向所述PLC传送用于指示将最前端的分割 数据之外的每个分割数据分别写入从所述数据区域的开始地址起相对应的偏移量的位置 的帧, 第三写入步骤,在所述第二写入步骤之后,向所述PLC传送用于指示向所述数据区域 的开始地址写入所述最前端的分割数据的帧。
6. -种程序,其特征在于, 使计算机执行权利要求5所述数据设定方法的各个步骤。
7. -种计算机可读取的存储介质,其特征在于, 存储有权利要求6所述的程序。
【文档编号】H04L12/40GK104067185SQ201280067859
【公开日】2014年9月24日 申请日期:2012年3月2日 优先权日:2012年1月24日
【发明者】永田雄大 申请人:欧姆龙株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1