こちらの記事はEXOR XA5をCodesys RuntimeをインストールさせCANOpen Master立ち上げ、同じくCodesys Runtime内蔵してるPixsys社のCPUにCanOpen Slaveを構築し通信します。
さ、始めよう!
Reference Link
XA5?
XA5は、堅牢かつ柔軟な計装が必要とされる屋外用途向けに設計されたHMIです。最も過酷な環境条件下で信頼性の高い屋外動作を実現するためには、-30°C〜+ 70℃の広い動作温度範囲が可能になります。
https://www.exorint.com/en/product/rugged-hmi-xa5
高度な電源管理とソフトウェアの最適化により、高速起動とユーザー設定に応じたスタンバイ/ウェイクアップ状態の制御が可能です。スタンバイ・モードでの低消費電力は、バッテリー駆動のアプリケーションでは重要な機能です。
- Programmable with JMobile software
- Optional CODESYS PLC
- Optional Corvina Platform connectivity
- CAN FD ports x2
- Ethernet Interface x 2
- RS-485, isolated x 1
- 重さ0.6 Kg
- IEEE 802.11a/b/g WI-FI
Layout
こちらはEXOR XA5のLayoutです。
Antenna
こちらはWI-FIアンテナの場所です。
Light Sensor/Configurable LED
A=Light Sersnorの場所でB=設定可能のLEDの場用になります。
LED
XA5背面の各LEDの意味です。
Power Supply
電源Supplyの配線です。注意するのはKEY ENABEL PINにも24vを給電する必要があります。
Port
CAN
Power Supply
Implementation
Wiring
こちらは配線図になります。
PlxSys Side
DIP Switch
CANネットワークを使用するには、まずDIPスイッチ3番目をOnにしてください。
Add CAN Bus
CANOpen Local Slaveを構築します。Device>右クリック>Add Deviceします。
Fieldbus>CANbus>CANbusを選択し、Add Deviceします。
Done!CANbus Driverがプロジェクトに追加されました。
Add Can Bus Local Devices
次はCANBusを右クリック>Local Device>CANopen Deviceを選択しAdd Deviceします。
Done!いまプロジェクトでCANopenのSlaveを構築しました。
IF missing Library
新しいデバイスを追加するたびMissing Libraryエラーが発生する場合もあります。
Library Manger>Download Missing Librariesで必要なライブラリをDownloadしましょう。
Parameters
次はCANbusのパラメータを設定します。
Canbus(CANbus)
Canbus(CANbus)をダブルクリックし、General Tabが表示されます。
Network
Networkを1に設定します。0=Pixsys CPU Local CAN Busなので、1=端子台4,5のCANBusになります。
Baud rate
通信速度をアプリケーションに合わせてください。
CANopen Device
次はCANopen Device、つまりSlave自分自身の設定になります。
Node ID
自分のNode IDを設定します。Defaultは1です。
10に変更します。Master側のプロジェクトにCANopen設定するときに合わせる必要があります。
Edit I/O Area
次はMasterと交換するデータサイズ・方向などの設定をします。Edit I/O Areaをクリックしてください。
Edit I/O Area画面が表示されました。
Add Transmit
Add Areaで新しいデータ交換領域を宣言します。
I/O direction をTransmitに設定します。つまりPixsysからXA5に出力するQデータになります。
Data Typeは交換するデータタイプを設定できます。今回はDrop-ListからINT(16Bit整数)にしましょう。
Countは何個同じデータを連続に定義するかを設定します。Count=4なら4つの16Bit整数になります。
Done!Transmit方向(出力)データが定義されました。
Add Receive
次はAdd Areaをもう一回クリックし、I/O directionをReceiveに設定します。Pixsysにとって、このデータは入力(I)になります。先程と同じく4つの16Bit整数に定義しましょう。
Done!
最後はOkボタンで設定を保存します。
CANopen I/O Mapping
CANopen I/O Mapping Tabを開くで、先ほど定義したTransmitとReceiveデータも追加され、Mappingできるようになりました。
Object Dictionary
次はObject Dictionary Tabを開いてみます。
16#3000と16#3800のTransmit・Receiveデータもありました。
各Objectにも4つデータがあります。
Export EDS File
次はEDS FileをExportしましょう。
Export先を設定してください。
Add GVL
MappingするためにGVLを追加します。Application>右クリック>Add Object>Global Variable Listをクリックします。
GVL名を入力しましょう。
中にMapping用のINT配列を定義します。
Mapping
最後はGVLの変数とCANopen I/OをMappingします。
I/Oと先程のGVLで定義した変数と紐つけましょう。
Done!
Program
確認するため、プログラムは各変数に適当な値を入れればOKです。
Login
プロジェクトをDownloadするためにLoginします。
Login with online change>Okします。
それでPixsysのCodesys CANOpen Slave側が準備OKです。
XA5 Side
次はXA5側をやります。Codesysの新規プロジェクトを作成するときはXA5を選んでください。
Install EDS File
Pixsys プロジェクトからExportしたEDS Fileをインストールします。Tools>Device Repositoryを開きます。
Device Respository画面が表示されます。
InstallボタンをクリックしEDS FileをImportします。
先程ExportしたEDS Fileを開きましょう。
Add CANbus
CANBus Driverを追加するためDevice>Add Deviceします。
Fieldbus>CANbus>CANbusを選び、Add DeviceでCANbus Driverを追加します。
CANbus Driverが追加されました。
Add CANopen Manager
次はXA5 DriverにCANopen Masterを追加します。CANopen>CANopenManager>CANopen_Managerを入れましょう。
Done!CANopen Masterが追加されました。
Add CANopen Slave
今度はPixsysのCANopen SlaveをCANopenネットワークに挿入します。Fieldbus>CANopen>Remote Device>CANopenDeviceは先程ImportしたEDS fileになります。
Done!PixsysのCANopen Slaveが追加されました。
PDOs
PDOsのTabを開いてProcess Data Objectを確認しましょう。
TransmitとReceive PDO両方ともImportされましたね!
Parameters
次はCANOpenのネットワークパラメータを設定します。
CANbus
Network
Network=1を設定します。
CANopen Device
次はPixsysのCANopen Slaveの通信パラメータを設定します。
General Tabが表示されます。
Node-ID
Node-ID=10、それはPixsysのCodesysプロジェクトが該当するID=10に設定したので。
Add GVL
I/O Mapping用のGVLを定義します。Application>Add object>Global Variable Listを追加します。
INTの配列を2つ定義しましょう。
CANopen I/O Mapping
次はGVLで定義した変数とIOをMappingします。
…ボタンをクリックします。
適切な変数と紐つけましょう。
Done!
他のI/Oも同じようにMappingしましょう。
Program
最後は検証のため出力に適当な値を書き込みます。
Login
LoginでプログラムをCodesys RuntimeにDownloadしましょう。
Result
EXOR Side
CANbusの隣に緑のICOがついていて、つまりいま正常に動いています。
Statusから現在のCANbus状態を確認いただけます。
CANopen MangaerのStatusからいまCANOpen MasterがRunningだと確認できます。
Logで詳しい動作履歴を確認できます。
Pixsysからの出力データも受信できました。
PixSys Side
PixSys側にも同じくCanbusに緑ICONがついていて、CanBusが正常に動作してることがわかります。
EXOR XA5からのデータも受信できました。