フリーソフトウエアのソースコードを PLCnext 用にビルドすることができます。
ここでは EPC 1502 を例に取り、GNU Hello というとてもシンプルなC言語のソースコード配布パッケージを GNU からダウンロードして PLCnext で動作させるまでの手順を紹介します。
クロスビルド用ホスト環境の構築
PLCnext Info Center で、クロスビルド用ホスト環境に必要なシステム要件を確認し、要件に合う PC を用意します。
今回は、クロスビルド用ホスト環境として Linux の Ubuntu 18.04.6 LTS を用いることとします。実機の PC へ Ubuntu をインストールしても構いませんが、Virtual Box のような仮想環境でも問題ありません。Ubuntu のインストール方法については Ubuntu のサイトなどをご参照ください。
EPC 1502 の製品ページから「ダウンロード」をクリックし、ジャンプ先にある「ソフトウエア」の項目を確認して下さい。
「pxc-glibc-」で始まるファイルと「PLCnext」で始まるファイルについて、Linux 用のものをそれぞれダウンロードします。
なお、これらのファイルのバージョンと PLCnext の FW バージョンは同じである必要があるので、注意してください。今回の例では、FW 2022.0.7 LTS を搭載した EPC 1502 を対象としているため、上記の通りバージョン 2022.0 のファイルを使うことができます。
以降、今ダウンロードした「pxc-glibc-」で始まるファイルを Linux SDK、 「PLCnext」で始まるファイルをPLCnCLI と呼びます。
PLCnCLI | Linux SDK を操作するためのコマンドラインツール。Linux SDK のインストールもこちらのツール を使います。 |
Linux SDK | Linux SDK 本体となります。ソースコードのビルドに必要なツールが全て含まれています。 |
クロスビルド用ホスト環境である Ubuntu を起動し、SDK 類のインストールや一般的なビルド作業に必要となるパッケージをインストールします。
$ sudo apt install xz-utils python3 build-essential libunwind8 sshpass libtool pkg-config
まず PLCnCLI をインストールします。STEP 2 で ダウンロードした PLCnCLI ファイルを Ubuntu 上の適当な場所へ配置し、そのディレクトリ上で以下の様に実行してください。
(ファイル名は STEP 2 で紹介したものを使用しています。ご使用のバージョンに合わせて適宜読み換えて下さい。)
$ chmod a+x PLCnext_Toolchain_Linux_2022.0.sh
$ ./PLCnext_Toolchain_Linux_2022.0.sh
実行するとソフトウエアライセンス条項が表示され同意を求められるので、問題がなければ “y” を入力して Enter キーを押します。
そうするとシェルスクリプトが置いてあるディレクトリに plxncli というディレクトリが作成され、このディレクトリの下に plcncli というツールが用意されます。
plxncli ディレクトリ下の plcncli ツールにパスを通すため以下のコマンドを実行します。
$ ln -s [plcncli ディレクトリへのパス]/plcncli /usr/local/bin/plcncli
plcncli ツールにパスを通っていることを確認するため、以下のコマンドを実行します。
$ plcncli version
以下のようにバージョンが表示されたら、plcncli の準備完了となります。
STEP 4 でインストールした PLCnCLI を用いて Linux SDK をインストールします。STEP 2 で ダウンロードした Linux SDK を Ubuntu 上の適当な場所へ配置し、そのディレクトリ上で以下の様に実行してください。
(ファイル名は STEP 2 で紹介したものを使用しています。ご使用のバージョンに合わせて適宜読み換えて下さい。)
$ chmod a+x pxc-glibc-x86_64-epc1502-image-sdk-corei7-64-epc1500-64-toolchain-2022.0.sh
$ sudo plcncli install sdk -d /opt/pxc/sdk/EPC1502/2022.0 -p ./pxc-glibc-x86_64-epc1502-image-sdk-corei7-64-epc1500-64-toolchain-2022.0.sh
以下のようなメッセージが表示されれば SDK のインストールは完了です。
ソースコード配布パッケージ「GNU Hello」のクロスビルド
GNU Operating System の GNU Hello 用サイトから最新のソースコード配布パッケージをダウンロードします。
$ wget http://ftp.gnu.org/gnu/hello/hello-2.12.1.tar.gz
ダウンロードしたファイルのある場所で以下のように解凍し、新しく作られたディレクトリへ移動します。
$ tar xvfz hello-2.12.1.tar.gz
$ cd hello-2.12.1
以下のコマンドを実行し、EPC 1502 用のクロスビルド環境を有効化します。
$ source /opt/pxc/sdk/EPC1502/2022.0/environment-setup-corei7-64-pxc-linux
GNU のソースコード配布パッケージには configure というスクリプトが含まれており、実行すると Makefile が作成されてビルドの準備が整います。クロスビルド時は configure 実行時に –host パラメータを指定する必要があります。
以下のようにして、EPC 1502 用に configure を実行して下さい。
$ ./configure –host=x86_64-pxc-linux
make を実行します。
$ make
カレントディレクトリ内に hello というファイルができます。
PLCnext 実機で hello を実行
クロスビルドによって作成された hello ファイルを PLCnext 実機へ転送します。
$ sftp admin@192.168.1.10
EPC 1502 のデフォルト設定値は以下の通りです。
LAN ポート X3 | 192.168.1.10 |
LAN ポート X2 | 192.168.2.10 |
ユーザ名 | admin |
パスワード | (PLCnext 本体表面ラベルに記載、8桁の英数字) |
IP アドレスの設定が正しいはずなのに接続できないときは、以下を実行して指定したホストの鍵をknow_hostsから抹消してから、sftp を再試行してみてください。
$ ssh-keygen -R 192.168.1.10
sftp の put コマンドを用いて、hello ファイルを PLCnext へ転送します。転送が終わったら exit コマンドで sftp を終了してください。
sftp> put hello /opt/plcnext
Uploading hello to /opt/plcnext/hello
hello 100% 209KB 3.5MB/s 00:00
sftp> exit
PLCnext へ SSH でログインしてください。
$ ssh admin@192.168.1.10
hello ファイルを実行します。
admin@epc1502:~$ ./hello
以下のように表示されたら成功です。
PLCnext の EPC 1502 を例にとって紹介しましたが、EPC 1522 や AXC F 1152/2152/3152 でも手順は同じです。
ご使用の PLCnext の製品ページから Linux SDK と PLCnCLI をダウンロードしてご使用ください。