Skip to main content

自分のI / Oをリンクする

この機能により、ローカルI / Oをコントローラーに接続し、IECアプリケーションから使用できます。

デバイスの説明を編集する

提供されているサンプル UDSIoDrvExample.project では、2 つの入力と出力がデバイス記述と一緒に作成されています。入力と出力はUnixドメイン・ソケットを介してリンクされています。このサンプルは、 CODESYS 子目录 CODESYS Control SL Extension Package\<version>\Examples\ExternalIoDrv.

_rtslext_img_io_connection.png

独自の入力と出力を定義するには、デバイス記述ファイル SocketUnixIOTemplate.devdesc.xml 適応させる必要があります。 XML parameter 要素は、入力と出力のそれぞれに対して定義する必要があります。 ParameterId ここでは、デバイス記述ファイル内で一意である必要があります。ギャップなしで昇順で番号を付けることをお勧めします。例:1000 1001 1002など:入力には1000から、出力には2000から番号を付けます。

注記

デバイスの説明を変更した場合は、プロジェクトで使用できるようにデバイスリポジトリに再インストールする必要があります。

<Parameter ParameterId="1000" type="std:DWORD">
   <Attributes channel="input"/>
   <Default/>
   <Name name="local:in1">/Namne>
</Parameter>

名前

説明

ParameterId

入力または出力が呼び出される一意のID

タイプ

入力または出力の幅の定義。これは、次のような適切に広いデータ型を指定することによって行われます。 std:BYTEstd:WORDstd:DWORD、 また std:LWORD。他の単純なデータ型も許可されます。

属性チャネル

input また output

名前名前

それぞれの入力または出力の名前

さらに、デバイスIDを割り当てる必要があります。これは、 <DeviceIdentification>。0x00018000〜0x0001 80FFの範囲は、既存のデバイスとの衝突を回避するためにこの目的のために提供されています。

重要

モジュールの順序は固定されていないため、デバイスの説明と基盤となるI / Oドライバを1つのPLCで複数回インスタンス化しないでください。これにより、I / Oドライバーが割り当てを保証できなくなる可能性があります。

Pythonの例

Pythonの例では uds_io_driver.py、出力が受信され、デバイスの入力が書き込まれます。入力パラメータ(IEC出力)は、文字列のタプルとして渡されます(paramTypeparamValue)デバイス記述のパラメータIDをインデックスとして使用します。

ドライバーはデータ型を処理できます USINTUINTUDINT、 と ULINT。他のデータ型は、適切なデータ型にキャストする必要があります。

例: ('2000': ('UDINT', '11'), '2001': ('UDINT', '22')}。出力パラメータは同じ形式です。

ピアの場合も、「出力」/出力パラメータは、それでもIECアプリケーションによって「外部」に転送される出力値です(たとえば、実際のGPIOに書き出されます)。 The UDS_IODriver_0 例で実装されたクラスは、 ExternalFunctionBase class。クラスの名前はから派生しています UDS_IODriver_ 昇順でインスタンスインデックスが続きます。 Call() IECのメカニズムから呼び出される機能が必要です。ここでIEC出力を評価し、IEC入力を転送することができます。

Linuxのメンバーとしてのみインターフェースを使用する codesysuser ユーザー・グループ

はい

プロセス分離

はい