JP4588671B2 - Programmable controller - Google Patents
Programmable controller Download PDFInfo
- Publication number
- JP4588671B2 JP4588671B2 JP2006199742A JP2006199742A JP4588671B2 JP 4588671 B2 JP4588671 B2 JP 4588671B2 JP 2006199742 A JP2006199742 A JP 2006199742A JP 2006199742 A JP2006199742 A JP 2006199742A JP 4588671 B2 JP4588671 B2 JP 4588671B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- device area
- address
- boundary
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Testing And Monitoring For Control Systems (AREA)
- Programmable Controllers (AREA)
Description
この発明は、メモリ空間上に複数のデバイス領域を割り当てて使用するプログラマブルコントローラに関するもので、特に、プログラム中のインデックス修飾によってユーザーが意図していない領域に対して行われるメモリアクセスを検出する機構を有するプログラマブルコントローラに関するものである。 The present invention relates to a programmable controller that allocates and uses a plurality of device areas on a memory space. In particular, the invention relates to a mechanism for detecting a memory access made to an area that is not intended by a user by index modification in a program. The present invention relates to a programmable controller.
プログラマブルコントローラはユーザーが記述したプログラムに従って動作する。ユーザーが記述するプログラムでは、ユーザーはX1,Y10,D100といったデバイス種別とデバイス番号を用いて処理を記述する。ここで、X,Y,Dはデバイス種別であり、その後の数字はデバイス番号である。ユーザーが作成したプログラムはプログラマブルコントローラが実行可能な形式に変換され、プログラマブルコントローラのプログラム記憶領域に格納される。その際にデバイス種別やデバイス番号といった情報はプログラマブルコントローラからアクセスできるメモリ空間内の絶対アドレスに置き換えられる。その後、プログラマブルコントローラはプログラム記憶領域にあるプログラムを順に実行する。 The programmable controller operates according to a program written by the user. In the program written by the user, the user describes the processing using the device type and device number such as X1, Y10, and D100. Here, X, Y, and D are device types, and the subsequent numbers are device numbers. The program created by the user is converted into a format that can be executed by the programmable controller and stored in the program storage area of the programmable controller. At that time, information such as the device type and device number is replaced with an absolute address in the memory space accessible from the programmable controller. Thereafter, the programmable controller sequentially executes the programs in the program storage area.
ユーザープログラム中で異なるデバイス種別として記述されるX,Y,Dは、上記絶対アドレスへの変換によって同じメモリ空間内の異なる領域に割り当てられる。そのため、ユーザープログラムによる誤ったインデックス修飾によって、本来はアクセスできない異なるデバイス種別の領域へアクセスをすることがある。例えば、インデックスレジスタZ0を用いてX1000Z0と記載した場合、Z0の値によってはXデバイス領域を越え、X領域以外の領域に対してアクセスを行う可能性がある。この場合、Z0の値はプログラム実行中に変化するため、プログラム記述時点ではわからないことが多い。このような現象が発生した場合に、プログラムミスにより意図しない同種デバイスのデータを壊すだけでなく、異なる種類のデバイスデータが壊れるというユーザーから考えると想像し難い現象が発生する。 X, Y, and D described as different device types in the user program are assigned to different areas in the same memory space by conversion to the absolute address. For this reason, an area of a different device type that cannot be originally accessed may be accessed due to incorrect index modification by the user program. For example, when X1000Z0 is described using the index register Z0, there is a possibility that an area other than the X area may be accessed beyond the X device area depending on the value of Z0. In this case, since the value of Z0 changes during program execution, it is often unknown at the time of program description. When such a phenomenon occurs, not only the data of the same kind of device that is not intended to be destroyed due to a program mistake, but also a phenomenon that is difficult to imagine from the viewpoint of a user who breaks different types of device data.
アクセスできない領域に対してアクセスを防ぐために、一般的にメモリ保護といわれる機能がある。しかし、メモリ保護によって保護される領域はプロセスやスレッドと呼ばれる一連のプログラム毎に定められており、上記に示したようにインデックス修飾によってアクセスする領域が変化したことを検出する機能ではない。 In order to prevent access to an inaccessible area, there is a function generally called memory protection. However, the area protected by memory protection is determined for each series of programs called processes and threads, and is not a function for detecting that the area to be accessed has changed due to index modification as described above.
このような課題への対策として、特許文献1の先行事例に示すように、インデックスレジスタに制限を設ける方法がある。この先行事例では、主な適用例として、配列変数へのアクセスにインデックスレジスタを用いた場合が取り上げられている。配列変数の先頭要素に対してインデックス修飾を行った結果得られるアドレスが、配列変数として確保した領域から逸脱したことを検出するために、インデックスレジスタの値に対して上下限値を事前に設定している。プログラム実行中には、インデックスレジスタへのライトを検出し、ライトデータが該上下限値から逸脱した場合に処理を停止している。 As a countermeasure to such a problem, there is a method of providing a restriction on the index register as shown in the prior example of Patent Document 1. In this preceding case, the case where an index register is used for accessing an array variable is taken up as a main application example. In order to detect that the address obtained as a result of index modification on the first element of an array variable has deviated from the area reserved as an array variable, upper and lower limit values are set in advance for the value of the index register. ing. During the execution of the program, a write to the index register is detected, and the process is stopped when the write data deviates from the upper and lower limit values.
この先行事例では、予め確保した配列領域を逸脱しないようにインデックスレジスタの上下限値を設定することができるため、確保した配列領域に対して厳密な領域管理が可能であることが特徴である。ここで記載されている配列領域をデバイス領域と考えて、先行事例に記載された方法をプログラマブルコントローラのデバイス領域逸脱検出に適用することが可能である。 The preceding example is characterized in that the upper and lower limit values of the index register can be set so as not to deviate from the previously secured array area, and therefore strict area management is possible for the secured array area. The array region described here is considered as a device region, and the method described in the previous example can be applied to device region deviation detection of the programmable controller.
しかし、このようなプログラマブルコントローラでは通常インデックスレジスタの数が限られているため、プログラマブルコントローラが実行するプログラム中で同一のインデックスレジスタを異なる領域に対する修飾に用いる場合には、インデックスレジスタの上下限値設定を変更しなければならない。また、プログラマブルコントローラのデバイス領域は該領域中の任意のアドレスに対してインデックス修飾を行うことが可能であり、先行事例を適用する場合に、同一デバイス領域中であっても、X0Z0とX100Z0のように、修飾されるアドレスが変わる度にインデックスレジスタが許される上下限値が変更になるため、上下限値を再設定する必要がある。これらの処理は一般的にプログラマブルコントローラが実行するプログラム中に記載されるため、プログラマブルコントローラとしての処理速度が低下する。 However, in such a programmable controller, the number of index registers is usually limited, so when using the same index register for modifying different areas in the program executed by the programmable controller, the upper and lower limit values of the index register are set. Must be changed. In addition, the device area of the programmable controller can be index-modified for an arbitrary address in the area, and when applying the preceding case, even in the same device area, such as X0Z0 and X100Z0 In addition, since the upper and lower limit values allowed for the index register change every time the address to be modified changes, it is necessary to reset the upper and lower limit values. Since these processes are generally described in a program executed by the programmable controller, the processing speed as the programmable controller decreases.
また、先行事例では、上下限値のチェックをインデックスレジスタへのライト時に行っているため、インデックスレジスタを単なるレジスタとして通常の演算に用いる場合には、上下限値設定を解除する必要がある。そのためインデックス修飾を行う命令の大部分に上下限値の設定や解除を行う処理が必要となり、上下限値設定のための命令を処理する時間が必要となるか、又は命令コードと併せて上下限値に関する情報を保持する領域が必要となる。これらの理由により、先行事例をデバイス領域の逸脱検出に適用する場合には、プログラム実行中に必要となる追加情報・追加処理が大きいため適していない。 In the preceding example, the upper and lower limit values are checked when writing to the index register. Therefore, when the index register is used as a simple register for normal calculation, it is necessary to cancel the upper and lower limit value settings. Therefore, it is necessary to set or cancel the upper and lower limit values for most of the instructions that perform index modification, and it takes time to process the instructions for setting the upper and lower limit values, or the upper and lower limit values are combined with the instruction code. An area for holding information about values is required. For these reasons, it is not suitable to apply the preceding case to the deviation detection of the device area because additional information and additional processing required during program execution are large.
従来のプログラマブルコントローラは以上のように構成されているので、インデックス修飾後の領域逸脱検出処理をプログラマブルコントローラが実行するプログラム中で行うと、プログラムの実行に伴い、インデックス修飾されるアドレスが変化したときのインデックスレジスタの上下限値設定や解除等の処理が必要となり、プログラマブルコントローラとしての処理速度が低下するという課題があった。 Since the conventional programmable controller is configured as described above, if the area deviation detection process after index modification is performed in the program executed by the programmable controller, the index-modified address changes as the program is executed This requires processing such as setting and canceling the upper and lower limit values of the index register, and the processing speed as a programmable controller is reduced.
この発明は上記のような課題を解決するためになされたもので、インデックス修飾後の領域逸脱検出処理をプログラマブルコントローラが実行するプログラム中で行う必要がなく、処理速度を低下させないプログラマブルコントローラを得ることを目的とする。 The present invention has been made to solve the above-described problems, and it is not necessary to perform a region deviation detection process after index modification in a program executed by the programmable controller, and to obtain a programmable controller that does not reduce the processing speed. With the goal.
この発明に係るプログラマブルコントローラは、インデックス修飾に使用される値を保持しているインデックスレジスタと、命令コードに含まれるレジスタ番号に基づき上記インデックスレジスタに保持されている値を取得し、上記命令コードが要求するアクセス幅が単位アクセス幅を超える場合に、上記命令コードに含まれるアドレスと上記インデックスレジスタから取得した値に基づき、インデックス修飾後の実際にアクセスする開始アドレスを算出し、算出した開始アドレスと上記命令コードに含まれるアドレス幅を出力するインデックス修飾部と、該インデックス修飾部により算出されたインデックス修飾後の実際にアクセスするアドレスが、上記命令コードに含まれるアドレスに対応するメモリマップ上のデバイス領域を逸脱するか否かを判定する領域逸脱判定部とを備え、上記領域逸脱判定部は、上記インデックス修飾部により出力された実際に最初にアクセスする開始アドレスとアドレス幅に基づき、最後にアクセスする最終アドレスを算出する最終アドレス計算部と、
上記メモリマップ上に連続して確保されている複数のデバイス領域の下限値又は上限値を境界アドレスとして、上記連続して確保されているデバイス領域の順番に格納しているデバイス領域設定レジスタと、命令コードに含まれるアドレスが、上記デバイス領域設定レジスタにおける連続するどの境界アドレス間のアドレスであるかをチェックして、上記メモリマップ上のどのデバイス領域にあるかを判定するデバイス領域判定部と、上記デバイス領域設定レジスタを参照して、上記デバイス領域判定部により判定されたデバイス領域の連続する境界アドレスを選択する上下限値選択部と、上記インデックス修飾部により出力された開始アドレスと上記最終アドレス計算部により算出された最終アドレスが、上記上下限値選択部により選択された連続する境界アドレスの範囲内であるか否かを判定する範囲内判定部とを備えたものである。
The programmable controller according to the present invention acquires an index register holding a value used for index modification and a value held in the index register based on a register number included in the instruction code. When the requested access width exceeds the unit access width, the actual access start address after index modification is calculated based on the address included in the instruction code and the value acquired from the index register , and the calculated start address and An index modifier that outputs the address width included in the instruction code , and a device on the memory map in which the address that is actually accessed after the index modification calculated by the index modifier corresponds to the address included in the instruction code Depart from the area A whether determining regions deviation determining unit, the region deviation determining unit, based on the start address and the address width for accessing actually the first output by the index modification unit, calculating a final address to access the last A final address calculator to
A device area setting register that stores the lower limit value or the upper limit value of a plurality of device areas continuously secured on the memory map as a boundary address in the order of the device areas secured continuously; A device area determination unit that checks which address between successive boundary addresses in the device area setting register the address included in the instruction code is in which device area on the memory map; Referring to the device area setting register, upper and lower limit value selection sections for selecting continuous boundary addresses of the device area determined by the device area determination section, and the start address and the last address output by the index modification section The final address calculated by the calculation unit is selected by the upper / lower limit value selection unit. And it is whether it is within the bounds consecutive addresses that a range determination unit determines.
この発明によれば、インデックス修飾後の領域逸脱検出処理をプログラマブルコントローラが実行するプログラム中で行う必要がなく、プログラマブルコントローラとしての処理速度を低下させないという効果が得られる。 According to the present invention, it is not necessary to perform the area deviation detection process after index modification in a program executed by the programmable controller, and the effect of not reducing the processing speed as the programmable controller can be obtained.
実施の形態1.
図1はこの発明の実施の形態1で想定するメモリマップ10とデバイス領域設定レジスタ101を示す図である。メモリマップ10上に複数のデバイス領域が確保されており、それぞれのデバイス領域の下限値と上限値がデバイス領域下限レジスタ101aとデバイス領域上限レジスタ101bに格納されており、これらをまとめてデバイス領域設定レジスタ101とする。図1の例では一つのメモリ空間上に4つのデバイス領域を割り当てており、デバイス領域設定レジスタ101にそれぞれのデバイス領域の上限値と下限値が格納されている。デバイス領域下限レジスタ101aとデバイス領域上限レジスタ101bはプログラムとは別のパラメータとしてプログラムの実行前に設定される。図1ではメモリマップ10上のデバイス領域の最大数を仮に4として記載しているが、デバイス領域数を変更することは可能である。
Embodiment 1 FIG.
FIG. 1 is a diagram showing a
ユーザーによって記述されるプログラム中にはデバイス領域に対してアクセスを行う命令コードがある。この命令コードには、アクセスするデバイス領域のアドレスとインデックス修飾に用いるレジスタ番号が含まれており、命令コードに含まれるアドレスとインデックス修飾用に指定されたレジスタの値を加算して実際にアクセスするアドレスを算出する。このアドレス加算処理をインデックス修飾と呼び、この処理を行うため命令コードに含まれているアドレスと実際にアクセスを行うアドレスは異なる場合がある。 There is an instruction code for accessing the device area in the program described by the user. This instruction code includes the address of the device area to be accessed and the register number used for index modification. The address included in the instruction code and the value of the register specified for index modification are added for actual access. Calculate the address. This address addition process is called index modification, and the address included in the instruction code for performing this process may be different from the address actually accessed.
図2はこの発明の実施の形態1によるプログラマブルコントローラの構成を示すブロック図である。このプログラマブルコントローラは、プログラム格納部11、命令コード取得部12、インデックスレジスタ13、インデックス修飾部14、アクセス実行部15及び領域逸脱判定部100を備え、領域逸脱判定部100は、デバイス領域設定レジスタ101、デバイス領域判定部102、上下限値選択部103及び範囲内判定部104を備えている。
FIG. 2 is a block diagram showing the configuration of the programmable controller according to the first embodiment of the present invention. The programmable controller includes a
図2において、プログラム格納部11は命令コードを含むプログラムを格納し、命令コード取得部12はプログラム格納部11に格納されているプログラムの命令コードを取得する。インデックスレジスタ13はインデックス修飾に使用される値を保持し、インデックス修飾部14は、命令コード取得部12により取得された命令コードに含まれるレジスタ番号に基づきインデックスレジスタ13に保持されている値を取得し、命令コードに含まれるアドレスとインデックスレジスタ13から取得した値を加算して、インデックス修飾後の実際にアクセスするアドレスを算出する。
In FIG. 2, a
領域逸脱判定部100は、命令コード取得部12により取得された命令コードに含まれるアドレスを入力し、インデックス修飾部14により算出されたインデックス修飾後の実際にアクセスするアドレスが、命令コードに含まれるアドレスに対応するメモリマップ10上のデバイス領域を逸脱するか否かを判定する。すなわち、領域逸脱判定部100は、命令コード取得部12により取得された命令コードに含まれるアドレスからメモリマップ10上のデバイス領域を判定し、判定したデバイス領域の下限値と上限値を選択し、インデックス修飾部14により算出された実際にアクセスするアドレスが選択した下限値と上限値の範囲内であるか否かを判定し、実際にアクセスするアドレスがデバイス領域の下限値と上限値の範囲内である場合にはアクセス許可を出力し、実際にアクセスするアドレスがデバイス領域の下限値と上限値の範囲内でない場合には停止要求を出力する。
The area
アクセス実行部15は、領域逸脱判定部100から出力されたアクセス許可に基づき、インデックス修飾部14から出力された実際にアクセスするアドレスを用いてデバイス領域へのアクセスを行う。
Based on the access permission output from the area
領域逸脱判定部100において、デバイス領域設定レジスタ101は、メモリマップ10上の複数のデバイス領域の下限値と上限値を、各デバイス領域下限レジスタ101aとデバイス領域上限レジスタ101bに格納している。デバイス領域判定部102は、命令コード取得部12により取得された命令コードに含まれるアドレスが、デバイス領域設定レジスタ101におけるどのデバイス領域下限レジスタ101aとデバイス領域上限レジスタ101bの間のアドレスであるかをチェックして、メモリマップ10上のどのデバイス領域にあるかを判定する。上下限値選択部103は、デバイス領域設定レジスタ101を参照して、デバイス領域判定部102により判定されたデバイス領域の下限値と上限値を選択する。
In the area
範囲内判定部104は、インデックス修飾部14により算出された実際にアクセスするアドレスが、上下限値選択部103により選択されたデバイス領域の下限値と上限値の範囲内であるか否かを判定し、実際にアクセスするアドレスがデバイス領域の下限値と上限値の範囲内である場合には、すなわち、次の式(1)を満足していれば、インデックス修飾後のアドレスがデバイス領域を逸脱するものではないと判定して、アクセス実行部15にアクセス許可を出力する。
下限値≦アドレス≦上限値 (1)
The in-
Lower limit value ≤ address ≤ upper limit value (1)
一方、範囲内判定部104は、実際にアクセスするアドレスがデバイス領域の下限値と上限値の範囲内でない場合には、すなわち、上記式(1)を満足していなければ、インデックス修飾後のアドレスがデバイス領域を逸脱するものであると判定して、プログラマブルコントローラ全体を制御する制御部(図示せず)にプログラマブルコントローラとしての処理の停止要求を出力すると共にユーザーに通知する。
On the other hand, if the address to be actually accessed is not within the range between the lower limit value and the upper limit value of the device area, that is, if the above formula (1) is not satisfied, the in-
このような構成により、命令コードに含まれるアドレスに対してインデックス修飾を行うと共に、命令コードに含まれるアドレスとインデックス修飾後のアドレスが同じデバイス領域に属することを判定した後に、デバイス領域のアクセスを行うことが可能となる。 With such a configuration, index modification is performed on the address included in the instruction code, and after determining that the address included in the instruction code and the address after index modification belong to the same device area, the device area is accessed. Can be done.
以上のように、この実施の形態1によれば、領域逸脱判定部100が命令コードに含まれるアドレスとインデックス修飾後のアドレスが同じデバイス領域に属するか否かを判定することにより、インデックス修飾後の領域逸脱検出処理をプログラマブルコントローラが実行するプログラム中で行う必要がなく、プログラマブルコントローラとしての処理速度を低下させないという効果が得られる。
As described above, according to the first embodiment, the area
実施の形態2.
図3はこの発明の実施の形態2によるプログラマブルコントローラの構成を示すブロック図である。このプログラマブルコントローラは、上記実施の形態1の図2に示すプログラマブルコントローラと同様に、プログラム格納部11、命令コード取得部12、インデックスレジスタ13、インデックス修飾部14、アクセス実行部15及び領域逸脱判定部100を備えているが、領域逸脱判定部100の構成が図2と異なる。
Embodiment 2. FIG.
FIG. 3 is a block diagram showing a configuration of a programmable controller according to the second embodiment of the present invention. This programmable controller is similar to the programmable controller shown in FIG. 2 of the first embodiment, and includes a
図3において、領域逸脱判定部100は、デバイス領域設定レジスタ101、デバイス領域判定部102、上下限値選択部103、範囲内判定部104及び最終アドレス計算部105を備え、範囲内判定部104は、下限値判定部104a、上限値判定部104b及び結果判定部104cを備えている。
なお、この発明の実施の形態2で想定するメモリマップ10とデバイス領域設定レジスタ101を示す図は、上記実施の形態1の図1と同じである。
In FIG. 3, the area
The diagram showing the
上記実施の形態1では、命令コードが要求するアクセス幅が単位アクセス幅を超えない場合を想定しているが、この実施の形態2では、命令コードが要求するアクセス幅が、16ビット(2バイト)アクセス、32ビット(4バイト)アクセスのように、単位アクセス幅を超える場合について説明する。命令コードが要求するアクセス幅が、単位アクセス幅を超える場合には、インデックス修飾部14により算出された実際にアクセスするアドレスは、最初にアクセスする開始アドレスを示し、最後にアクセスする最終アドレスは開始アドレスと異なったものとなる。すなわち、最初にアクセスする開始アドレスがデバイス領域を逸脱するものではなくても、最後にアクセスする最終アドレスがデバイス領域を逸脱する場合がある。
In the first embodiment, it is assumed that the access width requested by the instruction code does not exceed the unit access width. However, in this second embodiment, the access width requested by the instruction code is 16 bits (2 bytes). A case where the unit access width is exceeded, such as access and 32-bit (4-byte) access, will be described. When the access width requested by the instruction code exceeds the unit access width, the actually accessed address calculated by the
インデックス修飾部14は、命令コード取得部12により取得された命令コードに含まれるレジスタ番号に基づきインデックスレジスタ13に保持されている値を取得し、命令コードに含まれるアドレスとインデックスレジスタ13から取得した値を加算して、インデックス修飾後の実際にアクセスする開始アドレスを算出し、算出した開始アドレスと命令コードに含まれるアドレス幅を出力する。
The
最終アドレス計算部105は、インデックス修飾部14により出力された実際に最初にアクセスする開始アドレスとアドレス幅に基づき、次の式(2)を用いて最後にアクセスする最終アドレスを算出する。
最終アドレス=開始アドレス+アクセス幅−1 (2)
The final
Final address = start address + access width -1 (2)
範囲内判定部104は、インデックス修飾部14により出力された開始アドレスと最終アドレス計算部105により算出された最終アドレスが、上下限値選択部103により選択されたデバイス領域の下限値と上限値の範囲内であるかを判定する。
The in-
範囲内判定部104における下限値判定部104aは、インデックス修飾部14により算出された実際に最初にアクセスする開始アドレスが、上下限値選択部103により選択されたデバイス領域の下限値以上であるか否かを判定する。また、範囲内判定部104における上限値判定部104bは、最終アドレス計算部105により算出された実際に最後にアクセスする最終アドレスが、上下限値選択部103により選択されたデバイス領域の上限値以下であるか否かを判定する。
The lower
範囲内判定部104における結果判定部104cは、下限値判定部104aにより実際に最初にアクセスする開始アドレスがデバイス領域の下限値以上であると判定され、かつ、上限値判定部104bにより実際に最後にアクセスする最終アドレスがデバイス領域の上限値以下であると判定された場合に、インデックス修飾後のアドレスがデバイス領域を逸脱するものではないと判定して、アクセス実行部15にアクセス許可を出力し、それ以外の場合には、インデックス修飾後のアドレスがデバイス領域を逸脱するものであると判定して、プログラマブルコントローラ全体を制御する制御部(図示せず)にプログラマブルコントローラとしての処理の停止要求を出力すると共にユーザーに通知する。
The
アクセス実行部15は、領域逸脱判定部100から出力されたアクセス許可に基づき、インデックス修飾部14から出力された実際にアクセスするアドレスとアドレス幅を用いてデバイス領域へのアクセスを行う。
Based on the access permission output from the area
その他のプログラム格納部11、命令コード取得部12、インデックスレジスタ13、デバイス領域設定レジスタ101、デバイス領域判定部102及び上下限値選択部103の処理は、上記実施の形態1と同様である。
Other processes of the
このような構成により、命令コードが要求するアクセス幅が単位アクセス幅を超える場合にも、命令コードに含まれるアドレスに対してインデックス修飾を行うと共に、命令コードに含まれるアドレスとインデックス修飾後のアドレスが同じデバイス領域に属することを判定した後に、デバイス領域のアクセスを行うことが可能となる。 With such a configuration, even when the access width requested by the instruction code exceeds the unit access width, index modification is performed on the address included in the instruction code, and the address included in the instruction code and the address after index modification are performed. Can be accessed after determining that they belong to the same device area.
以上のように、この実施の形態2によれば、命令コードが要求するアクセス幅が単位アクセス幅を超える場合にも、領域逸脱判定部100が命令コードに含まれるアドレスとインデックス修飾後のアドレスが同じデバイス領域に属するか否かを判定することにより、インデックス修飾後の領域逸脱検出処理をプログラマブルコントローラが実行するプログラム中で行う必要がなく、プログラマブルコントローラとしての処理速度を低下させないという効果が得られる。
As described above, according to the second embodiment, even when the access width requested by the instruction code exceeds the unit access width, the area
実施の形態3.
この発明の実施の形態3によるプログラマブルコントローラの構成を示すブロック図は、上記実施の形態2の図3と同じであり、上記実施の形態2と同様に、命令コードが要求するアクセス幅が単位アクセス幅を超える場合について説明する。
Embodiment 3 FIG.
The block diagram showing the configuration of the programmable controller according to the third embodiment of the present invention is the same as FIG. 3 of the second embodiment, and the access width required by the instruction code is the unit access as in the second embodiment. A case where the width is exceeded will be described.
図4はこの発明の実施の形態3で想定するメモリマップ10とデバイス領域設定レジスタ101を示す図である。図4に示すように、メモリマップ10上に複数のデバイス領域0〜6が連続して確保されており、それぞれのデバイス領域0〜6の上限値又は下限値が境界レジスタとして、連続して確保されているデバイス領域0〜6の順番にデバイス境界レジスタ101cに格納されており、これらをまとめてデバイス領域設定レジスタ101とする。このように、メモリマップ10上に複数のデバイス領域が連続して確保され、それぞれのデバイス領域の上限値又は下限値を境界アドレスとして、連続して確保されているデバイス領域0〜6の順番にデバイス領域設定レジスタ101に格納することにより、デバイス領域設定レジスタ101のレジスタ数を削減することができる。
FIG. 4 is a diagram showing the
メモリ空間中の連続した領域にデバイス領域を確保する場合、隣接するデバイス領域の上限値と下限値は連続する値となり、上限値に関するチェックは隣接する次のデバイス領域の下限値を用いて実現可能となる。すなわち、デバイス領域n−1の上限値はデバイス領域nの下限値と連続しており、次の式(3)が成立する。
(デバイス領域n−1の上限値)+1=(デバイス領域nの下限値) (3)
When securing device areas in contiguous areas in the memory space, the upper limit value and lower limit value of the adjacent device area are consecutive values, and the upper limit check can be performed using the lower limit value of the next adjacent device area. It becomes. That is, the upper limit value of the device region n-1 is continuous with the lower limit value of the device region n, and the following expression (3) is established.
(Upper limit value of device area n-1) + 1 = (Lower limit value of device area n) (3)
そこで、デバイス領域設定レジスタ101のデバイス境界レジスタ101cにそれぞれのデバイス領域の下限値が格納されている場合には、デバイス領域判定部102は、命令コード取得部12により取得された命令コードに含まれるアドレスが、デバイス領域設定レジスタ101におけるどの境界レジスタの間のアドレスであるかをチェックして、メモリマップ10上のどのデバイス領域にあるかを判定する。上下限値選択部103は、デバイス領域設定レジスタ101を参照して、デバイス領域判定部102により判定されたデバイス領域の連続する境界アドレス(デバイス領域判定部102により判定されたデバイス領域の下限値とメモリマップ10上に確保されている次のデバイス領域の下限値)を選択する。
Therefore, when the lower limit value of each device area is stored in the
範囲内判定部104は、インデックス修飾部14により算出された最初にアクセスする開始アドレス及び最終アドレス計算部105により算出された最後にアクセスする最終アドレスが、上下限値選択部103により選択されたデバイス領域の連続する境界アドレス(上下限値選択部103により選択されたデバイス領域の下限値とメモリマップ10上に確保されている次のデバイス領域の下限値)の範囲内であるか否かを判定する。すなわち、範囲内判定部104は、デバイス領域nについて領域逸脱の判定を行う場合には、次の式(4)により判定を行う。
(デバイス領域nの下限値)≦アドレス<(デバイス領域n+1の下限値) (4)
上記式(4)において、アドレスは開始アドレス及び最終アドレスを表している。
The in-
(Lower limit value of device area n) ≦ Address <(Lower limit value of device area n + 1) (4)
In the above formula (4), the address represents a start address and a final address.
このとき、範囲内判定部104における上限値判定部104bは、最終アドレス計算部105により算出された実際に最後にアクセスする最終アドレスが、上下限値選択部103により選択されたデバイス領域n+1の下限値未満であるか否かを判定する。また、範囲内判定部104における下限値判定部104aは、インデックス修飾部14により算出された実際に最初にアクセスする開始アドレスが、上下限値選択部103により選択されたデバイス領域nの下限値以上であるか否かを判定する。
At this time, the upper
一方、デバイス領域設定レジスタ101のデバイス境界レジスタ101cにそれぞれのデバイス領域の上限値が格納されている場合には、デバイス領域判定部102は、命令コード取得部12により取得された命令コードに含まれるアドレスが、デバイス領域設定レジスタ101におけるどの境界レジスタの間のアドレスであるかをチェックして、上下限値選択部103は、デバイス領域設定レジスタ101を参照して、デバイス領域判定部102により判定されたデバイス領域の連続する境界アドレス(デバイス領域判定部102により判定されたデバイス領域のメモリマップ10上に確保されている前のデバイス領域の上限値とデバイス領域判定部102により判定されたデバイス領域の上限値)を選択する。
On the other hand, when the upper limit value of each device area is stored in the
範囲内判定部104は、インデックス修飾部14により算出された最初にアクセスする開始アドレス及び最終アドレス計算部105により算出された最後にアクセスする最終アドレスが、上下限値選択部103により選択されたデバイス領域の連続する境界アドレス(上下限値選択部103により選択されたデバイス領域のメモリマップ10上に確保されている前のデバイス領域の上限値とデバイス領域判定部102により判定されたデバイス領域の上限値)の範囲内であるか否かを判定する。
すなわち、範囲内判定部104は、デバイス領域nについて領域逸脱の判定を行う場合には、次の式(5)により判定を行う。
(デバイス領域n−1の上限値)<アドレス≦(デバイス領域nの上限値) (5)
上記式(5)において、アドレスは開始アドレス及び最終アドレスを表している。
The in-
In other words, the in-
(Upper limit value of device area n−1) <Address ≦ (Upper limit value of device area n) (5)
In the above formula (5), the address represents a start address and a final address.
このとき、範囲内判定部104における上限値判定部104bは、最終アドレス計算部105により算出された実際に最後にアクセスする最終アドレスが、上下限値選択部103により選択されたデバイス領域nの上限値以下であるか否かを判定する。また、範囲内判定部104における下限値判定部104aは、インデックス修飾部14により算出された実際に最初にアクセスする開始アドレスが、上下限値選択部103により選択されたデバイス領域n−1の上限値を超えるか否かを判定する。
At this time, the upper
範囲内判定部104における結果判定部104cは、下限値判定部104a及び上限値判定部104bによる判定結果が上記式(4)又は式(5)を満足している場合には、インデックス修飾後のアドレスがデバイス領域を逸脱するものではないと判定して、アクセス実行部15にアクセス許可を出力し、下限値判定部104a及び上限値判定部104bによる判定結果が上記式(4)又は式(5)を満足していない場合には、インデックス修飾後のアドレスがデバイス領域を逸脱するものであると判定して、プログラマブルコントローラ全体を制御する制御部(図示せず)にプログラマブルコントローラとしての処理の停止要求を出力すると共にユーザーに通知する。
The
その他のプログラム格納部11、命令コード取得部12、インデックスレジスタ13、インデックス修飾部14、アクセス実行部15、デバイス領域設定レジスタ101及び最終アドレス計算部105の処理は、上記実施の形態2と同様である。
The other processes of the
以上のように、この実施の形態3によれば、メモリマップ10上に複数のデバイス領域を連続して確保し、それぞれのデバイス領域の上限値又は下限値を境界アドレスとしてデバイス領域設定レジスタ101に順番に格納し、領域逸脱判定部100が命令コードに含まれるアドレスとインデックス修飾後のアドレスが同じデバイス領域に属するか否かを判定することにより、上記実施の形態2より少ないデバイス領域設定レジスタ101のレジスタ数で、上記実施の形態2と同じ効果が得られる。
As described above, according to the third embodiment, a plurality of device areas are continuously secured on the
実施の形態4.
図5はこの発明の実施の形態4で想定するメモリマップ10とデバイス領域設定レジスタ101を示す図である。図5に示すメモリマップ10には、上記実施の形態3の図4と同様に、複数のデバイス領域0〜6が連続して確保されているが、それぞれのデバイス領域の境界アドレスがデバイス境界レジスタ101cに順不同に格納されており、これらをまとめてデバイス領域設定レジスタ101としている点が図4と異なっている。このように、このデバイス境界レジスタ101cには境界アドレスを任意に設定することができる。なお、それぞれのデバイス領域の境界アドレスとしてはデバイス領域0〜6の上限値又は下限値が格納されているものとする。
Embodiment 4 FIG.
FIG. 5 is a diagram showing the
図6はこの発明の実施の形態4によるプログラマブルコントローラの構成を示すブロック図である。このプログラマブルコントローラは、上記実施の形態1の図2に示すプログラマブルコントローラと同様に、プログラム格納部11、命令コード取得部12、インデックスレジスタ13、インデックス修飾部14、アクセス実行部15及び領域逸脱判定部100を備えているが、領域逸脱判定部100の構成が図2と異なる。
図6において、領域逸脱判定部100は、デバイス領域設定レジスタ101、デバイス境界比較部(第1のデバイス境界比較部)106、デバイス境界比較部(第2のデバイス境界比較部)107及び比較結果判定部109を備えている。
FIG. 6 is a block diagram showing a configuration of a programmable controller according to the fourth embodiment of the present invention. This programmable controller is similar to the programmable controller shown in FIG. 2 of the first embodiment, and includes a
In FIG. 6, the region
デバイス境界比較部106は命令コード取得部12により取得された命令コードに含まれるアドレスとデバイス領域設定レジスタ101の全てのデバイス境界レジスタ101cに格納されている境界アドレスとの大小比較を行って比較結果を出力する。例えば、デバイス境界比較部106は、命令コードに含まれるアドレスがデバイス領域設定レジスタ101におけるデバイス境界レジスタ0の境界アドレスより大きいか否かをチェックして成立すれば「1」とし、次に命令コードに含まれるアドレスがデバイス領域設定レジスタ101におけるデバイス境界レジスタ1の境界アドレスより大きいか否かをチェックして成立すれば「1」とし、以下、順に、命令コードに含まれるアドレスとデバイス領域設定レジスタ101におけるデバイス境界レジスタ2〜7の境界アドレスとの比較を行い、8ビットの比較結果を得て出力する。
The device
デバイス境界比較部107は、デバイス境界比較部106と同様にして、インデックス修飾部14により算出された実際にアクセスするアドレスとデバイス領域設定レジスタ101の全てのデバイス境界レジスタ101cに格納されている境界アドレスとの大小比較を行って例えば8ビットの比較結果を出力する。
Similar to the device
比較結果判定部109は、デバイス境界比較部106により出力された例えば8ビットの比較結果とデバイス境界比較部107により出力された例えば8ビットの比較結果が一致した場合には、命令コードに含まれるアドレスとインデックス修飾後のアドレスが同じデバイス領域に属するものと判定し、インデックス修飾後のアドレスがデバイス領域を逸脱するものではないと判定して、アクセス実行部15にアクセス許可を出力する。
The comparison
一方、比較結果判定部109は、デバイス境界比較部106により出力された例えば8ビットの比較結果とデバイス境界比較部107により出力された例えば8ビットの比較結果が一致しない場合には、命令コードに含まれるアドレスとインデックス修飾後のアドレスが異なるデバイス領域に属するものと判定し、インデックス修飾後のアドレスがデバイス領域を逸脱するものであると判定して、プログラマブルコントローラ全体を制御する制御部(図示せず)にプログラマブルコントローラとしての処理の停止要求を出力すると共にユーザーに通知する。
On the other hand, if the comparison
その他のプログラム格納部11、命令コード取得部12、インデックスレジスタ13、インデックス修飾部14及びアクセス実行部15の処理は、上記実施の形態1と同様である。
Other processes of the
以上のように、この実施の形態4によれば、メモリマップ10上に複数のデバイス領域を連続して確保し、それぞれのデバイス領域の境界アドレスをデバイス領域設定レジスタ101に順不同に格納し、領域逸脱判定部100が、命令コードに含まれるアドレスとデバイス領域設定レジスタ101に格納されている全ての境界アドレスを比較し、インデックス修飾後のアドレスとデバイス領域設定レジスタ101に格納されている全ての境界アドレスを比較して、命令コードに含まれるアドレスとインデックス修飾後のアドレスが同じデバイス領域に属するか否かを判定することにより、それぞれのデバイス領域の境界アドレスをデバイス領域設定レジスタ101に順不同に格納しても、上記実施の形態1より少ないデバイス領域設定レジスタ101のレジスタ数で、上記実施の形態1と同じ効果が得られる。
As described above, according to the fourth embodiment, a plurality of device areas are continuously secured on the
実施の形態5.
図7はこの発明の実施の形態5によるプログラマブルコントローラの構成を示すブロック図である。このプログラマブルコントローラは、上記実施の形態1の図2に示すプログラマブルコントローラと同様に、プログラム格納部11、命令コード取得部12、インデックスレジスタ13、インデックス修飾部14、アクセス実行部15及び領域逸脱判定部100を備えているが、領域逸脱判定部100の構成が図2と異なる。
FIG. 7 is a block diagram showing a configuration of a programmable controller according to the fifth embodiment of the present invention. This programmable controller is similar to the programmable controller shown in FIG. 2 of the first embodiment, and includes a
図7において、領域逸脱判定部100は、デバイス領域設定レジスタ101、最終アドレス計算部105、デバイス境界比較部(第1のデバイス境界比較部)106、デバイス境界比較部(第2のデバイス境界比較部)107、デバイス境界比較部(第3のデバイス境界比較部)108及び比較結果判定部109を備えており、上記実施の形態4の図6に示す領域逸脱判定部100に、最終アドレス計算部105及びデバイス境界比較部108を追加したものであり、この実施の形態5では、上記実施の形態2と同様に、命令コードが要求するアクセス幅が単位アクセス幅を超える場合について説明する。
なお、この発明の実施の形態5で想定するメモリマップ10とデバイス領域設定レジスタ101を示す図は、上記実施の形態4の図5と同じである。
In FIG. 7, the area
The diagram showing the
最終アドレス計算部105は、上記実施の形態2の最終アドレス計算部105と同様にして、インデックス修飾部14により出力された実際に最初にアクセスする開始アドレスとアドレス幅に基づき、最後にアクセスする最終アドレスを算出する。
The final
デバイス境界比較部108は、上記実施の形態4のデバイス境界比較部106と同様にして、最終アドレス計算部105により算出された実際に最後にアクセスする最終アドレスとデバイス領域設定レジスタ101の全てのデバイス境界レジスタ101cに格納されている境界アドレスとの大小比較を行って例えば8ビットの比較結果を出力する。
The device
比較結果判定部109は、デバイス境界比較部106により出力された例えば8ビットの比較結果とデバイス境界比較部107により出力された例えば8ビットの比較結果とデバイス境界比較部108により出力された例えば8ビットの比較結果とが全て一致した場合には、命令コードに含まれるアドレスとインデックス修飾後のアドレスが同じデバイス領域に属するものと判定し、インデックス修飾後のアドレスがデバイス領域を逸脱するものではないと判定して、アクセス実行部15にアクセス許可を出力する。
For example, the comparison
一方、比較結果判定部109は、デバイス境界比較部106により出力された例えば8ビットの比較結果とデバイス境界比較部107により出力された例えば8ビットの比較結果とデバイス境界比較部108により出力された例えば8ビットの比較結果とが一致しない場合には、命令コードに含まれるアドレスとインデックス修飾後のアドレスが異なるデバイス領域に属するものと判定し、インデックス修飾後のアドレスがデバイス領域を逸脱するものであると判定して、プログラマブルコントローラ全体を制御する制御部(図示せず)にプログラマブルコントローラとしての処理の停止要求を出力すると共にユーザーに通知する。
On the other hand, the comparison
アクセス実行部15は、上記実施の形態2と同様に、領域逸脱判定部100から出力されたアクセス許可に基づき、インデックス修飾部14から出力された実際にアクセスするアドレスとアドレス幅を用いてデバイス領域へのアクセスを行う。
As in the second embodiment, the
その他のプログラム格納部11、命令コード取得部12、インデックスレジスタ13、インデックス修飾部14、デバイス領域設定レジスタ101、デバイス境界比較部106及びデバイス境界比較部107の処理は、上記実施の形態4と同様である。
Other processes of the
以上のように、この実施の形態5によれば、メモリマップ10上に複数のデバイス領域を連続して確保し、それぞれのデバイス領域の境界アドレスをデバイス領域設定レジスタ101に順不同に格納し、領域逸脱判定部100が、命令コードに含まれるアドレスとデバイス領域設定レジスタ101に格納されている全ての境界アドレスを比較し、インデックス修飾後の最初のアクセスの開始アドレスとデバイス領域設定レジスタ101に格納されている全ての境界アドレスを比較し、インデックス修飾後の最後のアクセスの最終アドレスとデバイス領域設定レジスタ101に格納されている全ての境界アドレスを比較して、命令コードに含まれるアドレスとインデックス修飾後のアドレスが同じデバイス領域に属するか否かを判定することにより、それぞれのデバイス領域の境界アドレスをデバイス領域設定レジスタ101に順不同に格納しても、命令コードが要求するアクセス幅が単位アクセス幅を超える場合でも、上記実施の形態1より少ないデバイス領域設定レジスタ101のレジスタ数で、上記実施の形態1と同じ効果が得られる。
As described above, according to the fifth embodiment, a plurality of device areas are continuously secured on the
実施の形態6.
図8はこの発明の実施の形態6によるプログラマブルコントローラの構成を示すブロック図である。このプログマブルコントローラは、上記実施の形態1の図2に示すプログラマブルコントローラと同様に、プログラム格納部11、命令コード取得部12、インデックスレジスタ13、インデックス修飾部14、アクセス実行部15及び領域逸脱判定部100を備えているが、領域逸脱判定部100の構成は、上記実施の形態1の図2、上記実施の形態2の図3、上記実施の形態4の図6、上記実施の形態5の図7のいずれの構成でも良い。
Embodiment 6 FIG.
FIG. 8 is a block diagram showing a configuration of a programmable controller according to the sixth embodiment of the present invention. This programmable controller is similar to the programmable controller shown in FIG. 2 of the first embodiment, and includes a
上記各実施の形態では、領域逸脱判定部100が領域逸脱判定を実施してアクセス実行部15にアクセス許可を出力後に、アクセス実行部15がインデックス修飾部14から出力されたインデックス修飾後の実際にアクセスするアドレスを用いてデバイス領域へのアクセスを行っている。この実施の形態6では、アクセス実行部15がデバイス領域へのライトアクセスを行う場合には、上記各実施の形態と同様の処理を行うが、アクセス実行部15がデバイス領域へのリードアクセスを行う場合には、領域逸脱判定部100による領域逸脱判定の結果を待たずにデバイス領域へのリードアクセスを行い、デバイス領域へのリードアクセス中に、領域逸脱判定部100が領域逸脱判定を実施して、デバイス領域を逸脱している場合に、アクセス実行部15にアクセス無効を出力してリードアクセスを停止させ、プログラマブルコントローラ全体を制御する制御部(図示せず)にプログラマブルコントローラとしての処理の停止要求を出力すると共にユーザーに通知する。
In each of the above-described embodiments, after the region
デバイス領域へのリードアクセスの場合には、本来アクセスすべきデバイス領域を逸脱してリードアクセスを行っても、デバイス領域のデータ破壊等の実害がないため、リードアクセスの場合には、領域逸脱判定部100による領域逸脱判定後にアクセス実行部15によるデバイス領域へのリードアクセスという手順を踏まずに、アクセス実行部15によるデバイス領域へのリードアクセス中に領域逸脱判定部100による領域逸脱判定を実施する。この処理により、命令コードによるプログマブルコントローラとしての処理をライトアクセスの場合と比較して高速にすることができる。
In the case of read access to the device area, even if read access is performed outside the device area that should be accessed, there is no actual damage such as data destruction in the device area. The region
以上のように、この実施の形態6によれば、上記実施の形態1から上記実施の形態5と同じ効果が得られると共に、デバイス領域へのリードアクセスの場合には、デバイス領域へのリードアクセス中に、領域逸脱判定部100による領域逸脱判定を実施することにより、プログマブルコントローラとしての処理をライトアクセスの場合と比較して高速にすることができるという効果が得られる。
As described above, according to the sixth embodiment, the same effects as those of the first to fifth embodiments can be obtained, and in the case of read access to the device area, read access to the device area. In particular, by executing the region departure determination by the region
実施の形態7.
図9はこの発明の実施の形態7で想定するメモリマップ10とデバイス領域設定レジスタ101を示す図である。図9では、メモリマップ10上に複数のデバイス領域が連続して確保されており、それぞれのデバイス領域0〜6の上限値又は下限値が境界アドレスとしてデバイス領域設定レジスタ101のデバイス境界レジスタ101cに順番に格納されている点は、上記実施の形態3の図4と同じであるが、図9では、さらにデバイス領域属性レジスタ101dを追加し、デバイス境界レジスタ101cとデバイス領域属性レジスタ101dをまとめてデバイス領域設定レジスタ101としている。このデバイス境界レジスタ101cで区切られたデバイス領域に対して、デバイス領域属性レジスタ101dによって該デバイス領域の属性情報を設定することができる。
Embodiment 7 FIG.
FIG. 9 is a diagram showing the
デバイス領域の属性情報としては、要求する処理内容を記述した属性情報である、例えばプログラム停止要求や、ユーザーへの不正通知要求や、デバイス領域のアクセス禁止要求や、不正通知の有無や、異常発生時のプログラム停止の有無等がある。 The device area attribute information is attribute information describing the requested processing content, for example, a program stop request, an unauthorized notification request to the user, an access prohibition request for the device area, the presence or absence of an unauthorized notification, or an error There is the presence or absence of program stop at the time.
図10はこの発明の実施の形態7によるプログラマブルコントローラの構成を示すブロック図である。このプログラマブルコントローラは、上記実施の形態2及び上記実施の形態3の図3に示すプログラマブルコントローラと同様に、プログラム格納部11、命令コード取得部12、インデックスレジスタ13、インデックス修飾部14、アクセス実行部15及び領域逸脱判定部100を備えているが、領域逸脱判定部100の構成が図3と異なる。
FIG. 10 is a block diagram showing a configuration of a programmable controller according to the seventh embodiment of the present invention. This programmable controller is similar to the programmable controller shown in FIG. 3 of the second embodiment and the third embodiment, and includes a
図10において、領域逸脱判定部100は、デバイス領域設定レジスタ101、デバイス領域判定部102、上下限値選択部103、範囲内判定部104、最終アドレス計算部105及びデバイス領域属性選択部110を備え、デバイス領域設定レジスタ101はデバイス境界レジスタ101c及びデバイス領域属性レジスタ101dを備え、範囲内判定部104は、下限値判定部104a、上限値判定部104b及び結果判定部104cを備えており、図3の構成と比較して、デバイス領域属性レジスタ101d及びデバイス領域属性選択部110が追加されている。
In FIG. 10, the area
デバイス領域判定部102は、命令コード取得部12により取得された命令コードに含まれるアドレスが、デバイス領域設定レジスタ101のデバイス境界レジスタにおけるどの境界レジスタ間のアドレスであるかをチェックして、メモリマップ10上のどのデバイス領域にあるかを判定する。上下限値選択部103は、デバイス領域設定レジスタ101のデバイス境界レジスタ101cを参照して、デバイス領域判定部102により判定されたデバイス領域の連続する境界アドレス(下限値又は上限値)を選択する。
The device
デバイス領域属性選択部110は、デバイス領域設定レジスタ101のデバイス属性レジスタ101dを参照して、デバイス領域判定部102により判定されたデバイス領域の属性情報を選択する。範囲内判定部104における結果判定部104cは、下限値判定部104a及び上限値判定部104bによりインデックス修飾後のアドレスがデバイス領域を逸脱するものであると判定した場合には、デバイス領域属性選択部110により選択されたデバイス領域の属性情報に基づいて要求する処理内容を出力する。
The device area
結果判定部104cは、選択されたデバイス領域の属性情報が異常発生時のプログラム停止要求であれば、プログラマブルコントローラ全体を制御する制御部(図示せず)にプログラマブルコントローラとしての処理の停止要求を出力し、属性情報がユーザーへの不正通知要求であれば、ユーザーへの不正通知要求を出力する。また、結果判定部104cは、属性情報がデバイス領域のアクセス禁止要求であれば、アクセス実行部15に対してアクセス許可の出力を停止することによりアクセス禁止を実現する。このとき、結果判定部104cは、上記実施の形態5に示したように、リードアクセスは常に実施し、ライトアクセスのみを禁止することも可能である。
If the attribute information of the selected device area is a program stop request when an abnormality occurs, the
その他のプログラム格納部11、命令コード取得部12、インデックスレジスタ13、インデックス修飾部14、アクセス実行部15、最終アドレス計算部105、下限値判定部104a及び上限値判定部104bの処理は、上記実施の形態3と同様である。
The processing of the other
以上のように、この実施の形態7によれば、上記実施の形態3と同じ効果が得られると共に、設定された属性情報に基づき要求する処理を出力することができるという効果が得られる。 As described above, according to the seventh embodiment, the same effect as in the third embodiment can be obtained, and an effect that the requested process can be output based on the set attribute information can be obtained.
実施の形態8.
図11はこの発明の実施の形態8で想定するメモリマップ10を示す図である。プログラム格納部11にプログラムと共にそのプログラム用のデバイス領域に関するデバイス領域情報を格納し、実行プログラムの切り替え時にデバイス領域設定レジスタ101を変更することにより、プログラム毎にメモリマップ10を変更することが可能である。図11ではプログラム格納部11におけるプログラム1を格納する領域にプログラム1用のデバイス領域情報51を格納し、プログラム2を格納する領域にプログラム2用のデバイス領域情報52を格納している。例えば、デバイス領域情報51にはデバイス境界レジスタ101cとデバイス領域属性レジスタ101dに設定すべき情報が含まれており、プログラム1の実行前に該情報をデバイス境界レジスタ101cとデバイス領域属性レジスタ101dに設定してからプログラム1を実行する。
Embodiment 8 FIG.
FIG. 11 is a diagram showing a
図12はこの発明の実施の形態8によるプログラマブルコントローラの構成を示すブロック図である。このプログラマブルコントローラは、上記実施の形態7の図10に示すプログラマブルコントローラに、実行プログラム指示部16及びデバイス領域設定部17を追加したものであり、その他の構成は図10と同じである。
12 is a block diagram showing a configuration of a programmable controller according to an eighth embodiment of the present invention. This programmable controller is obtained by adding an execution
図12において、プログラム格納部11はプログラムとそのプログラム用のデバイス領域に関するデバイス領域情報を格納している。実行プログラム指示部16は、ユーザーからの指示又は割り込みによるイベント発生時の指示に基づき、命令コード取得部12及びデバイス領域設定部17に実行するプログラムを通知する。命令コード取得部12は実行プログラム指示部16より通知されたプログラムの命令コードをプログラム格納部11から取得する。
In FIG. 12, a
デバイス領域設定部17は、実行プログラム指示部16より通知されたプログラムについて、そのプログラム用のデバイス領域情報をプログラム格納部11から取得し、取得したデバイス領域情報に基づき、指示されたプログラムに対応するデバイス境界レジスタ101c及びデバイス属性レジスタ101dを設定する。
その他のインデックスレジスタ13、インデックス修飾部14、アクセス実行部15及び領域逸脱判定部100の処理は、上記実施の形態7と同様である。
The device
The other processes of the
この実施の形態8では、領域逸脱判定部100の構成を上記実施の形態7と同じ構成を使用しているが、上記実施の形態1から上記実施の形態5の領域逸脱判定部100の構成を使用しても良い。
In the eighth embodiment, the configuration of the region
以上のように、この実施の形態8によれば、上記実施の形態7と同じ効果が得られると共に、デバイス領域設定部17が、プログラム格納部11から取得したデバイス領域情報に基づき、指示されたプログラムに対応してデバイス領域設定レジスタ101を設定することにより、プログラム毎にアクセス可能なローカルデバイス領域を実現することができるという効果が得られる。
As described above, according to the eighth embodiment, the same effect as in the seventh embodiment can be obtained, and the device
この実施の形態8では、デバイス領域が連続して割り当てられているが、デバイス領域が連続して割り当てられていない場合には、アクセスできない領域に、属性情報としてアクセス禁止要求を割り当てることにより、この実施の形態8を実現することができる。 In the eighth embodiment, the device area is continuously allocated. However, when the device area is not continuously allocated, an access prohibition request is allocated as attribute information to an inaccessible area. The eighth embodiment can be realized.
実施の形態9.
図13はこの発明の実施の形態8で想定するメモリマップ10を示す図である。この実施の形態9は、デバイス領域設定レジスタ101におけるデバイス境界レジスタ101cとデバイス領域属性レジスタ101dを、プログラムにより変更可能な機構を持ち、プログラムの実行状況に応じてこれらのデバイス領域設定レジスタ101を変更し、各時点で必要なチェックを実現することによって、仮想的にデバイス領域の数を増加させるものである。この方式では最低1組のデバイス領域設定レジスタ101が存在すれば実現可能であるが、ここでは複数のデバイス領域設定レジスタ101が存在することを利用して、できるだけ変更回数の少ない方法を採用することが可能である。
Embodiment 9 FIG.
FIG. 13 shows a
この発明の実施の形態9によるプログマブルコントローラの構成を示すブロック図は、上記実施の形態8の図12と同じである。
図12において、デバイス領域設定部17は、上記実施の形態8と同様に、実行プログラム指示部16より通知されたプログラム1について、そのプログラム1用のデバイス領域情報51をプログラム格納部11から取得し、取得したデバイス領域情報51に基づき、指示されたプログラム1に対応するデバイス領域設定レジスタ101におけるデバイス境界レジスタ101c及びデバイス属性レジスタ101dを設定する。
The block diagram showing the configuration of the programmable controller according to the ninth embodiment of the present invention is the same as FIG. 12 of the eighth embodiment.
In FIG. 12, the device
また、デバイス領域設定部17は、プログラム1に含まれているデバイス領域の変更命令1−4,1−5に基づき、デバイス領域設定レジスタ101におけるデバイス境界レジスタ101c及びデバイス属性レジスタ101dの設定を変更する。
The device
すなわち、図13では、仮想的にプログラム1を、プログラム1−1,1−2,1−3の3つに分割し、プログラム1−2とプログラム1−3の実行前にデバイス領域の変更命令1−4,1−5が設けられている。デバイス領域設定部17は、例えばデバイス領域1,2のように全てのプログラムで使用する領域に関する設定は変更せず、デバイス領域3−1,3−2,3−3のようにプログラム中の一部分でしか使用しないデバイス領域に関する設定を途中で変更することにより、図13に示す例では、5つのデバイス領域1,2,3−1,3−2,3−3を3組のデバイス領域設定レジスタ101で実現することが可能である。
That is, in FIG. 13, the program 1 is virtually divided into three programs 1-1, 1-2, and 1-3, and a device area change instruction is executed before the execution of the programs 1-2 and 1-3. 1-4 and 1-5 are provided. For example, the device
なお、プログラム1中にデバイス領域の変更命令1−4,1−5を埋め込む方法としては、コンパイラや開発環境による自動挿入が可能であるが、ユーザーにデバイス領域変更命令を開示し、ユーザーがプログラム1中にデバイス領域変更命令1−4,1−5を記述することにより、デバイス領域内のユーザーが指定した任意の箇所について、デバイス領域からの逸脱検出が可能となる。 As a method of embedding the device area change instructions 1-4 and 1-5 in the program 1, automatic insertion by a compiler or a development environment is possible. However, the device area change instruction is disclosed to the user, and the user program By describing the device area change instructions 1-4 and 1-5 in 1, deviation from the device area can be detected at any location designated by the user in the device area.
以上のように、この実施の形態9によれば、上記実施の形態8と同じ効果が得られると共に、プログラム1によりデバイス領域設定レジスタ101の設定を変更することができ、デバイス領域設定レジスタ101の数が少ない場合でも、多くのデバイス領域を動的に設定することができるという効果が得られる。
As described above, according to the ninth embodiment, the same effect as in the eighth embodiment can be obtained, and the setting of the device
10 メモリマップ、11 プログラム格納部、12 命令コード取得部、13 インデックスレジスタ、14 インデックス修飾部、15 アクセス実行部、16 実行プログラム指示部、17 デバイス領域設定部、51 プログラム1用デバイス領域情報、52 プログラム2用デバイス領域情報、100 領域逸脱判定部、101 デバイス領域設定レジスタ、101a デバイス領域下限レジスタ、101b デバイス領域上限レジスタ、101c デバイス境界レジスタ、101d デバイス領域属性レジスタ、102 デバイス領域判定部、103 上下限値選択部、104 範囲内判定部、104a 下限値判定部、104b 上限値判定部、104c 結果判定部、105 最終アドレス計算部、106 デバイス境界比較部、107 デバイス境界比較部、108 デバイス境界比較部、109 比較結果判定部、110 デバイス領域属性選択部。
DESCRIPTION OF
Claims (7)
命令コードに含まれるレジスタ番号に基づき上記インデックスレジスタに保持されている値を取得し、上記命令コードが要求するアクセス幅が単位アクセス幅を超える場合に、上記命令コードに含まれるアドレスと上記インデックスレジスタから取得した値に基づき、インデックス修飾後の実際にアクセスする開始アドレスを算出し、算出した開始アドレスと上記命令コードに含まれるアドレス幅を出力するインデックス修飾部と、
該インデックス修飾部により算出されたインデックス修飾後の実際にアクセスするアドレスが、上記命令コードに含まれるアドレスに対応するメモリマップ上のデバイス領域を逸脱するか否かを判定する領域逸脱判定部とを備え、
上記領域逸脱判定部は、
上記インデックス修飾部により出力された実際に最初にアクセスする開始アドレスとアドレス幅に基づき、最後にアクセスする最終アドレスを算出する最終アドレス計算部と、
上記メモリマップ上に連続して確保されている複数のデバイス領域の下限値又は上限値を境界アドレスとして、上記連続して確保されているデバイス領域の順番に格納しているデバイス領域設定レジスタと、
命令コードに含まれるアドレスが、上記デバイス領域設定レジスタにおける連続するどの境界アドレス間のアドレスであるかをチェックして、上記メモリマップ上のどのデバイス領域にあるかを判定するデバイス領域判定部と、
上記デバイス領域設定レジスタを参照して、上記デバイス領域判定部により判定されたデバイス領域の連続する境界アドレスを選択する上下限値選択部と、
上記インデックス修飾部により出力された開始アドレスと上記最終アドレス計算部により算出された最終アドレスが、上記上下限値選択部により選択された連続する境界アドレスの範囲内であるか否かを判定する範囲内判定部とを備えたプログラマブルコントローラ。 An index register holding values used for index modification;
The value stored in the index register is acquired based on the register number included in the instruction code, and when the access width requested by the instruction code exceeds the unit access width, the address included in the instruction code and the index register Based on the value obtained from the above, the index modification unit that calculates the actual access start address after index modification, and outputs the calculated start address and the address width included in the instruction code ,
An area departure determining unit that determines whether an address that is actually accessed after index modification calculated by the index modification unit deviates from a device area on a memory map corresponding to an address included in the instruction code; Prepared ,
The region departure determination unit
A final address calculation unit that calculates a final address to be accessed last based on a start address and an address width that are actually accessed first and output by the index modification unit;
A device area setting register that stores the lower limit value or the upper limit value of a plurality of device areas continuously secured on the memory map as a boundary address in the order of the device areas secured continuously;
A device area determination unit that checks which address between successive boundary addresses in the device area setting register the address included in the instruction code is in which device area on the memory map;
With reference to the device area setting register, an upper and lower limit value selection unit that selects continuous boundary addresses of the device area determined by the device area determination unit;
A range for determining whether the start address output by the index modifier and the final address calculated by the final address calculator are within the range of consecutive boundary addresses selected by the upper / lower limit value selector. A programmable controller comprising an internal determination unit .
デバイス領域設定レジスタは要求する処理内容を記述した各デバイス領域の属性情報を格納し、
上記デバイス領域設定レジスタを参照して、デバイス領域判定部により判定されたデバイス領域の属性情報を選択するデバイス領域属性選択部を備え、
範囲内判定部は、開始アドレスと最終アドレスが連続する境界アドレスの範囲内でないと判定した場合に、上記デバイス領域属性選択部により選択されたデバイス領域の属性情報に基づき要求する処理内容を出力することを特徴とする請求項1記載のプログラマブルコントローラ。 In the area deviation determination unit,
The device area setting register stores the attribute information of each device area describing the requested processing contents.
A device area attribute selection unit that refers to the device area setting register and selects attribute information of the device area determined by the device area determination unit,
When it is determined that the start address and the final address are not within the range of the continuous boundary address, the in-range determination unit outputs the processing content requested based on the device area attribute information selected by the device area attribute selection unit. The programmable controller according to claim 1 .
指示されたプログラム用のデバイス領域情報を上記プログラム格納部から取得し、取得したデバイス領域情報に基づき、上記複数のデバイス領域の境界アドレスと各デバイス領域の属性情報をデバイス領域設定レジスタに設定するデバイス領域設定部とを備えたことを特徴とする請求項2記載のプログラマブルコントローラ。 A program storage unit that stores a program including an instruction code, and stores device area information for the program including boundary addresses of a plurality of device areas and attribute information of each device area;
A device that acquires device area information for an instructed program from the program storage unit, and sets boundary addresses of the plurality of device areas and attribute information of each device area in a device area setting register based on the acquired device area information The programmable controller according to claim 2, further comprising an area setting unit.
メモリマップ上に連続して確保されている複数のデバイス領域の下限値又は上限値を境界アドレスとして順不同に格納しているデバイス領域設定レジスタと、
命令コードに含まれるアドレスと上記デバイス領域設定レジスタに格納されている全ての境界アドレスとの大小比較を行って比較結果を出力する第1のデバイス境界比較部と、
インデックス修飾部により算出された実際にアクセスするアドレスとデバイス領域設定レジスタに格納されている全ての境界アドレスとの大小比較を行って比較結果を出力する第2のデバイス境界比較部と、
上記第1のデバイス境界比較部により出力された比較結果と上記第2のデバイス境界比較部により出力された比較結果が一致するか否かを判定する比較結果判定部とを備えたことを特徴とする請求項1記載のプログラマブルコントローラ。 The area deviation determination unit
A device area setting register that stores a lower limit value or an upper limit value of a plurality of device areas continuously secured on the memory map as boundary addresses in random order; and
A first device boundary comparison unit that compares the address included in the instruction code with all boundary addresses stored in the device area setting register and outputs a comparison result;
A second device boundary comparison unit that compares the actual access address calculated by the index modification unit with all boundary addresses stored in the device area setting register and outputs a comparison result;
A comparison result determination unit for determining whether or not the comparison result output from the first device boundary comparison unit and the comparison result output from the second device boundary comparison unit match; The programmable controller according to claim 1.
領域逸脱判定部において、
上記インデックス修飾部により出力された実際に最初にアクセスする開始アドレスとアドレス幅に基づき、最後にアクセスする最終アドレスを算出する最終アドレス計算部と、
該最終アドレス計算部により算出された実際に最後にアクセスする最終アドレスとデバイス領域設定レジスタに格納されている全ての境界アドレスとの大小比較を行って比較結果を出力する第3のデバイス境界比較部とを備え、
比較結果判定部が第1のデバイス境界比較部により出力された比較結果と第2のデバイス境界比較部により出力された比較結果と上記第3のデバイス境界比較部により出力された比較結果とが一致するか否かを判定することを特徴とする請求項5記載のプログラマブルコントローラ。 When the access width required by the instruction code exceeds the unit access width, the index modification unit calculates the actual access start address after index modification based on the address included in the instruction code and the value obtained from the index register. Output the calculated start address and the address width included in the instruction code,
In the area deviation determination unit,
A final address calculation unit that calculates a final address to be accessed last based on a start address and an address width that are actually accessed first and output by the index modification unit;
A third device boundary comparison unit that compares the final address actually accessed last calculated by the final address calculation unit with all boundary addresses stored in the device area setting register and outputs the comparison result And
The comparison result output from the first device boundary comparison unit is compared with the comparison result output from the second device boundary comparison unit and the comparison result output from the third device boundary comparison unit. 6. The programmable controller according to claim 5, wherein it is determined whether or not to perform.
該アクセス実行部がデバイス領域へのリードアクセス中に、領域逸脱判定部が領域逸脱判定を実施して、デバイス領域を逸脱している場合に、上記アクセス実行部にアクセス無効を出力してリードアクセスを停止させることを特徴とする請求項1記載のプログラマブルコントローラ。 It has an access execution unit that accesses the device area using the actual access address output from the index modification unit,
When the access execution unit performs read access to the device area, the area departure determination unit performs the area departure determination, and when the access execution unit is out of the device area, the access execution unit outputs an invalid access to read access. The programmable controller according to claim 1, wherein the programmable controller is stopped.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006199742A JP4588671B2 (en) | 2006-07-21 | 2006-07-21 | Programmable controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006199742A JP4588671B2 (en) | 2006-07-21 | 2006-07-21 | Programmable controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008027236A JP2008027236A (en) | 2008-02-07 |
JP4588671B2 true JP4588671B2 (en) | 2010-12-01 |
Family
ID=39117801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006199742A Expired - Fee Related JP4588671B2 (en) | 2006-07-21 | 2006-07-21 | Programmable controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4588671B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5224923B2 (en) * | 2008-06-13 | 2013-07-03 | 三菱電機株式会社 | Control device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5730175A (en) * | 1980-07-30 | 1982-02-18 | Fujitsu Ltd | Information processor |
JPH11161304A (en) * | 1997-11-25 | 1999-06-18 | Matsushita Electric Works Ltd | Programmable controller |
-
2006
- 2006-07-21 JP JP2006199742A patent/JP4588671B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5730175A (en) * | 1980-07-30 | 1982-02-18 | Fujitsu Ltd | Information processor |
JPH11161304A (en) * | 1997-11-25 | 1999-06-18 | Matsushita Electric Works Ltd | Programmable controller |
Also Published As
Publication number | Publication date |
---|---|
JP2008027236A (en) | 2008-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102383900B1 (en) | Region identifying operation for identifying region of a memory attribute unit corresponding to a target memory address | |
KR102160916B1 (en) | Data processing apparatus and method using secure domain and less secure domain | |
US6615324B1 (en) | Embedded microprocessor multi-level security system in flash memory | |
JP6189039B2 (en) | Data processing apparatus and method using secure domain and low secure domain | |
CN109840410A (en) | The method and system of data isolation and protection in a kind of process | |
US8195946B2 (en) | Protection of data of a memory associated with a microprocessor | |
US8549325B2 (en) | Reducing information leakage between processes sharing a cache | |
JPH10228421A (en) | Memory access control circuit | |
CN110442379A (en) | Conditional presumptive instruction is protected to execute | |
JP2009157542A (en) | Information processing apparatus and method of updating stack pointer | |
JP7432586B2 (en) | Validating the stack pointer | |
KR102346255B1 (en) | Admission control for conditional memory access program instructions | |
US20130205413A1 (en) | Data processing apparatus and method using secure domain and less secure domain | |
US20080244229A1 (en) | Information processing apparatus | |
US7958296B2 (en) | System management and advanced programmable interrupt controller | |
CN109472172B (en) | Method for preventing unauthorized data access from memory | |
US7774587B2 (en) | Dynamic redundancy checker against fault injection | |
JP4588671B2 (en) | Programmable controller | |
KR100876637B1 (en) | Apparatus and method for detecting software attacks on linux | |
EP1713000A1 (en) | Memory protection system | |
KR102186221B1 (en) | Method for randomzing address space layout of embedded system based on hardware and apparatus using the same | |
JP4335940B2 (en) | Data processing apparatus and peripheral device protection method in data processing apparatus | |
JP4828996B2 (en) | Information processing apparatus and unauthorized execution prohibition method of security release program using the same | |
US8478970B2 (en) | Accessing value for local variable from function call stack upon offset matching with instruction extracted stack pointer offset or from cache | |
CN107710162B (en) | Electronic control device and stack using method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080703 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100615 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100803 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100831 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100908 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4588671 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130917 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |