例: CANopen
製品: CODESYS CANopen Manager SL
この例では、CANopen マスターと CANopen スレーブの通信スタックのプログラミング インターフェイスを扱います。このプロジェクトには、SDO、NMT、診断、通信パラメータ (ボー レート、ネットワーク ID、ノード ID) の動的構成などの例が含まれています。
説明
このプロジェクトには、CANopen マスター スタックと CANopen スレーブ スタックのプログラミング インターフェイスを使用するためのさまざまな例が含まれています。扱われるトピックには次のようなものがあります。
SDO (優先、セグメント、ブロック)、オブジェクト ディクショナリへのアクセス
ネットワーク管理 (NMT)
診断 (CANopen 状態、EMCY)
オブジェクト ディクショナリと CANopen マネージャー ステート マシンのイベント ハンドラー
再構成: ボーレート、ネットワーク ID、ノード ID の動的な変更
デバイス診断ライブラリによる CAN 設定へのアクセス
追加情報
このプロジェクトには、CANbus 経由で相互に通信する CANopen マスター スタックと CANopen スレーブ スタックが含まれています。プロジェクトをコミッショニングするには、相互接続された 2 つの CAN インターフェイスが必要です。これを実装する最も簡単な方法は、 CODESYS Control Win コントローラーと 2 チャンネル USB-CAN アダプター (PEAK PCAN-USB Pro など)、または 2 つの 1 チャンネル アダプター。
通信が機能するには、それぞれのランタイム システム コンポーネントを構成ファイルに入力する必要があります。
詳細については、以下を参照してください。 ランタイム構成。
このプロジェクトは、PLC のデバイス更新により、2 つの CAN インターフェイスを備えた任意のコントローラー上で操作することもできます。プロジェクトは 3 つの領域に分かれています。
CANbus Examples
ChangeBaudrate
: 再構成によるランタイムモードでのボーレートの動的変更EnableDisableCANbus
: 再構成によるランタイム モードでの CANbus の動的アクティブ化および非アクティブ化GetCANbus
: デバイス診断ライブラリによるエンジニアリングされた CANbus インスタンスの汎用検索
CANopen Master examples
診断
ReceiveEMCYFromAllDevicesExample
:緊急メッセージの受信CiA405.RECV_EMCY
ReceiveEMCYFromOneDeviceExample
:特定の機器に対する緊急メッセージを、CIA405.RECV_EMCY_DEV
GetCANopenKernelStateExample
: による CANopen カーネル状態の検出CIA405.GET_CANOPEN_KERNEL_STATE
GetStateExample
: スレーブの CANopen 状態を検出CIA405.GET_STATE
ネットワーク管理
GetCANopenManagerNodeIDExample
: CiA405 による CANopenManager ノード ID の検出。GET_CANOPEN_KERNEL_STATE
: CIA405.NMT による NMT リクエストの送信
SDO (非周期データ転送)
ExpeditedReadExample
: SDO (優先転送) を使用した 4 バイト以下のオブジェクトの読み取りCiA405.SDO_READ4
ExpeditedWriteExample
: SDO (優先転送) を使用した 4 バイト以下のオブジェクトの書き込みCIA405.SDO_WRITE4
SegmentedAndBlockReadExample
: SDO (セグメント転送またはブロック転送) を介した任意の長さのオブジェクトの読み取りCiA405.SDO_READ_DATA
SegmentedAndBlockWriteExample
: 任意の長さのオブジェクトを SDO (セグメント転送またはブロック転送) 経由で書き込みます。CiA405.SDO_WRITE_DATA
一般的な API 関数
CANopenManagerAPI
: CANopenManager インスタンスのすべてのメソッドとプロパティの使用法を示します。CANopenManagerEventHandler
: CANopen イベント ハンドラーの実装例CANopenRemoteDeviceAPI
: CANopenRemoteDevice インスタンスのすべてのメソッドとプロパティの使用法を示します。
CANopen Slave examples
診断
GetLocalDeviceInfoExample
: CANopen 状態とノード ID の読み取りを示します。
ネットワーク管理
ChangeNodeIDExample
: ランタイムモードでのノードIDの変更NMTExample
: ローカル CANopen 状態の変更
オブジェクト辞書
ReadObjectExample1
: ローカル オブジェクト ディクショナリからのオブジェクトの読み取りReadObjectExample2
:の代替例ReadObjectExample1
WriteObjectExample1
: オブジェクトの値をオブジェクト ディクショナリに書き込むWriteObjectExample2
:の代替例WriteObjectExample1
CountObjects
: オブジェクト ディクショナリのすべてのオブジェクトを次の方法で走査します。_3SCSS.ObjectIterator
GetPDOInfo
: オブジェクト ディクショナリを走査する追加の例ObjectDictionaryEventHandler
: オブジェクトディクショナリイベントハンドラの実装例
システム要件と制限事項
プログラミングシステム | CODESYS Development System (バージョン 3.5.14.0 以降) |
ランタイムシステム | CODESYS Control Win (バージョン 3.5.14.0) |
アドオンコンポーネント | 2 つの CAN インターフェイス |
注記
ダウンロード 計画