Skip to main content

例: 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 インターフェイス

注記

_example_icon.png ダウンロード 計画