Beckhoff(1)-機器動作確認

今回は、BECKHOFFの装置を動かしてみようと思います。BECKHOFFは、オートメーション機器メーカでです。PCベースの自動制御システムを提供しており、産業用PC、各種フィールドバス対応I/O、自動制御ソフトウェアTwinCATなどの製品ラインナップしています。

今回使用したBECKHOFFの機器とソフトウェア、開発環境は下記のとおりです。

【ハードウェア 】

  • C6015(IPC)
  • EK1100(EtherCAT カプラ)
  • EL1809(デジタルインプット)
  • EL2809(デジタルアウトプット)
  • EL6021(RS485通信)

【ソフトウェア 】

  • TC1200(TC3 PLC)
  • TF6340(TC3 Serial Communication)

【 開発環境】

  • Visual Studio

BECKHOFFの機器の制御するために、Visual Studioが必要になります。

今回は、FREE RUNモードで、EL2809の1ピンをHIGHにすると、EL1809の1ピンがHIGHになるような動作をさせてみようと思います。

それでは、まずは、電源を入れるところからです。今回使用するIPC(C6015)は4ピン端子で構成されたコネクタと、Ethernetケーブルコネクタ × 2、DP端子と、USB端子 × 2という構成にになっています。DP端子にはディスプレイ、USB端子はマウスとキーボードを接続しました。EthenetケーブルコネクタのLAN1側はPCと接続して、LAN2側はEK1100と接続しました。4ピン構成されているコネクタは、「GND」「24V+」「P-S」「ON」で構成されています。「24V+」「GND」を電源と繋げて、電流を流してあげると、IPCが起動します。BECKHOFFのロゴが表示された後にWindowsのロゴが表示され、それが完了するとWindowsが起動しました。

次にEK1100にも電源を入れます。一つの電源から、C6015とEK1100に電力を供給してもよいですが、ノイズがのることもあるかもしれないので、可能であれば、別々の電源から電力を供給したほうがよいそうです。

2020年12月23日 | カテゴリー : PLC | タグ : , | 投稿者 : prog

RX(24)-RS485通信

今回はRXマイコンを使用して、RS485通信機能を構築します。使用するマイコンは、「RX66T」になります。「Renesas Starter Kit+ for RX65N-2MB」評価ボードを使用します。開発環境は、「e2studio」になります。構築する機能の具体的な動作は、下記の通りです。

  • L1,ON\r:LED1点灯、OKを返信
  • L1,OFF\r”:LED1消灯、OKを返信
  • L2,ON\r:LED2点灯、OKを返信
  • L2,OFF\r:LED2消灯、OKを返信
  • 〇〇〇〇〇\r:NGを返信

今回、RS485のICは、「ADM4853」を使用しました。「ADM4853」は、RS-485半二重評価用ボード「EVAL-RS485HDEBZ」にはんだ付けして使用しています。「EVAL-RS485HDEBZ」の設定は下記の通りです。

  • LK1:Cのピンをショート
  • LK2:Cのピンをショート
  • LK3のピンをショート
  • LK4のピンをショート

それでは、F/Wを構築していきたいと思います。まずは、新規プロジェクトを作成します。新規プロジェクトの作成方法は、下記のページを参考にしてください。

RX(3)-RS232通信

プロジェクト・エクスプローラーに新規プロジェクトが追加されました。中央には、スマート・コンフィグレータが開かれると思いますので、ポートピンの設定をします。ポートピンの設定方法は、下記のページを参考にしてください。

RX(3)-RS232通信

JavaScript(2)-Node.js(http server)

前回は、動作確認のため、JavaScriptを使用して、文字列を出力する機能を構築しました。前回の内容は下記のページを参照してください。

JavaScript(1)-文字列出力

開発環境は、Visual Studio code を使用しました。デバッグや実行をするために、Node.jsもインストールしました。

そもそも、Node.jsとは何でしょうか?Node.jsはJavaScriptの実行環境の一つです。JavaScriptはWebブラウザ上で動作しますが、Node.jsはサーバ側でとくに動作するものになります。今回は、Node.jsを使用して、サーバ側で動作する機能を構築してみようと思います。具体的には、httpサーバです。構築したhttpサーバにアクセスすると、「プログラミングのあれこれ」と表示されるサイトを構築します。それでは、早速、構築していきたいと思います。

JavaScript(1)-文字列出力

今回は、JavaScriptを使用して、文字列を出力する機能を構築したいと思います。JavaScriptはWebサイトやWebアプリによく使用されていますが、現在はモバイルアプリなどにも使用されており、さまざまな用途に使用されています。まずは、開発環境を構築して、文字列を出力することで、JavaScriptの動作確認をしたいと思います。開発環境は、Visual Studio codeです。

Visual Studio Code は下記のサイトからダウンロードできます。

https://azure.microsoft.com/ja-jp/products/visual-studio-code/

デバッグや実行をするために、Node.jsも使用します。

https://nodejs.org/ja/download/

インストールが完了したら、Visual Studio Codeを起動します。起動したら、メニューバーの[ファイル]→[Open Folder]を選択して、新規フォルダを作成して、作成したフォルダを選択します。選択すると、Visual Studio Code上にフォルダが表示されるので、そのフォルダの中に、JavaScriptファイルを作成します。作成したら下記のコードを入力します。

console.log("Hello world.")

それでは、デバッグしてみたいと思います。メニューバーの[Run]→[Start Debugging]を選択します。下記のような画面が表示されるので、「Node.js」を選択します。

下記のように、「Hello World.」が出力されました。

TERMINALを選択して、下記のコマンドを入力しても実行できます。

node test.js

RX(23)-TCP/IPプロトコル 通信(noblocking)

前回、TCP/IPを使用した通信機能を構築してみたいと思います。下記のページが前回の内容になります。

RX(22)-TCP/IPプロトコル 通信

前回はは、接続要求や、受信待ちを実施すると、F/Wの処理自体を待ちにするようなF/Wにしました。このような処理でもよいですが、接続要求や受信待ちをするときに、F/Wの処理を待ちにしたくない場合もあると思います。

今回は、F/W処理を止めないようなTCP/IP通信機能を構築したいと思います。構築したF/WはGR-ROSEに書き込み動作させたいと思います。統合開発環境は「e2studio」を使用します。

今回は下記のような機能を構築しようと思います。

  • IPアドレスはDHCP機能で割り当ててもらう
  • 接続要求待ちをするTCPサーバー
  • 文字列を受信すると受信した文字列を相手側に送信する
  • 1を受信するとLEDを点灯する。
  • それ以外を受信するとLEDを消灯する。
  • 2台まで接続できるものとする。

PC側のアプリケーションは、TeraTermで動作確認しました。

それでは、機能を構築していきたいと思います。新規プロジェクトの作成を行います。新規プロジェクトの作成は下記のページを参考にしてください。

RX(3)-RS232通信

上記のページでは、ターゲット・デバイスを「R5F565NEHDFC」に設定しています。今回使用するマイコンは、「R5F565NEHDFP」なので、「R5F565NEHxFP」に設定してください。

アセンブリ言語(2)-開発環境準備

前回は、Debian OSをインストールして、動作確認をしました。前回の内容は下記のリンクを参照してください。

アセンブリ言語(1)-Debianインストール

今回は、アセンブリ言語を使用するために開発環境を準備しようと思います。準備する開発環境は下記の通りです。

  • gcc
  • g++
  • nasm
  • gdb-peda

まずは、gccをインストールします。下記コマンドでインストールできます。

sudo apt-get install gcc

次に、g++をインストールします。下記コマンドでインストールできます。

sudo apt-get install g++

次に、nasmをインストールします。下記コマンドでインストールできます。

sudo apt-get install nasm

次に、gdb-pedaをインストールします。「sudo apt-get install」でインストールを試みましたが、インストールはできませんでした。とりあえず、gdbをインストールしてみました。下記コマンドでインストールできます。

sudo apt-get install gdb

アセンブリ言語(1)-Debianインストール

アセンブリ言語を使用してみたいと思い、Linux OSをインストールすることにしました。32bit PCということもあり、ディストリビューションは、Debianを使用することにしました。Debianは下記サイトからダウンロードできます。

https://www.debian.org/index.ja.html

私は、下記からDVDに書き込み用のファイルをダウンロードして、インストールメディアを作成しました。用意する書き込みファイルは、「debian-10.4.0-i386-DVD-1.iso」です。「debian-10.4.0-i386-DVD-2.iso」と「debian-10.4.0-i386-DVD-3.iso」もありますが、こちらは追加ファイルですかね。

https://cdimage.debian.org/debian-cd/current/i386/iso-dvd/

インストールメディアが準備できあたら、インストールを実行します。デスクトップ環境は、PCのスペックも考慮して、「MATE」にしました。

インストールが完了したので、早速、端末を使用してコマンドを実行を試してみました。sudo apt-get install を使用してみましたが、使えませんでした。suコマンドを使用して、root権限にすると問題なく使用できました。現在のユーザにも権限を与えれば使えるのかな。また、そこらへんは調べてみたいと思います。 iwconfigも通常ユーザで使用できませんでした。root権限にすると実行できました。

端末の試用はとりあえずここまでとして、まずは、WiFiを使用したいので、その設定を行いたいと思います。このWiFiの設定に時間を費やしました。今回、使用したPCに搭載されている無線ボードが特殊なのかどうかわかりませんが、動きませんでした。おそらく、Marvell製だと思われます。ドライバをインストールしたところ、OSが起動しなくなったので、とりあえず他の方法で、WiFiに接続することにしました。結局、Buffaloの子機を使用することにしました。

まずは、wifi ドライバのインストールです。まずは、「source.list」します。「source.list」は、「etc→apt」フォルダにあります。各リポジトリにcontrib non-freeを追加します。DVDを参照するようになっているので、この部分はコメント化しました。「contrib」は、 パッケージ自体はmainだが,依存しているパッケージがnon-freeであるものを意味します。「non-free」は、再配布禁止のパッケージだそうです。ちなみに「main」は、 再配布可能なパッケージ です。

「source.list」の編集が完了したら、パッケージリストを「sudo apt-get update」コマンドで更新します。sudo apt-get install firmware-misc-nonfreeを実行して、BuffaloのWiFiドライバをインストールします。。バージョン8までは、「sudo apt-get install firmware-ralink」コマンドでしたが、バージョン9から変わったようです。対象ドライバは下記の通りです。

  • Ralink RT2070
  • Ralink RT2770
  • Ralink RT2870
  • Ralink RT3070
  • Ralink RT3071
  • Ralink RT3072
  • Ralink RT3370
  • Ralink RT3572
  • Ralink RT530
  • Ralink RT5372
  • Ralink RT5572

インテル製のWiFiドライバは、「sudo apt-get install firmware-iwlwifi」でインストール可能です。Mervell製のWiFiドライバは、「sudo apt-get install firmware-libertas」でインストールできると思いますが、私の場合、うまく動作しませんでした。

ドライバをインストールしたら、用意されているネットワークの設定アプリケーションでSSIDやパスワードを入力して設定すれば、Wifiの接続ができます。

これで、WiFiの設定は完了です。とりあえず、動作確認はここまでにして、次回は、コンパイラやデバッガのインストールをしていきたいと思います。

RX(22)-TCP/IPプロトコル 通信

今回は、TCP/IPを使用した通信機能を構築してみたいと思います。構築したF/WはGR-ROSEに書き込み動作させたいと思います。統合開発環境は「e2studio」を使用します。

TCPプロトコルは、Ethrenet フレームのデータの部分に保存して、送受信されます。下記のページにてEthrenetフレームの動きを確認していただくと、作業の効率があがると思います。

RX(21)-Ethernetフレーム通信

今回は下記のような機能を構築しようと思います。

  • IPアドレスはDHCP機能で割り当ててもらう
  • 接続要求待ちをするTCPサーバー
  • 文字列を受信すると受信した文字列を相手側に送信する
  • 1を受信するとLEDを点灯する。
  • それ以外を受信するとLEDを消灯する。

PC側のアプリケーションは、TeraTermと以前構築したTCPクライアントのアプリケーションで動作確認しました。

TCPクライアントのアプリケーションに関しては、下記のページを参照してください。

C#言語(3)-TCP通信(クライアント編)

それでは、新規プロジェクトの作成を行います。新規プロジェクトの作成は下記のページを参考にしてください。

RX(3)-RS232通信

上記のページでは、ターゲット・デバイスを「R5F565NEHDFC」に設定しています。今回使用するマイコンは、「R5F565NEHDFP」なので、「R5F565NEHxFP」に設定してください。

RX(21)-Ethernetフレーム通信

今回は、Ethernetフレームを使用した通信機能を構築してみたいと思います。Ethrenet フレームには、DXI規格(Ethrenet V2.0)とIEEE802.3規格があるようです。

DXI規格は、下記のような構成になっています。

IEEE802.3規格は下記のようになります。

物理層では、緑色、青色、オレンジ色の部分が対象となります。データリンク層では、青色とオレンジ色の部分が対象になります。

今回、構築する機能では、DXI規格を使用します。F/W内では、青色の部分(宛先MACアドレス、送信元MACアドレス、タイプ、データ)を設定して、Ethrenet フレームを送信します。

今回は、「RX65N」が搭載されている「GR-ROSE」ボードを使用して機能を構築します。GR-ROSEを2個をLANケーブルで接続して通信します。統合開発環境は「e2studio」を使用します。

下記ののような機能を構築します。

  • 2秒ごとにEthernet フレームを送信します。
  • Ethrenetフレームを受信したらデータをRS232通信でPCに送信します。

それでは、機能を構築していきたいと思います。まずは、新規プロジェクトの作成を行います。新規プロジェクトの作成は下記のページを参考にしてください。

RX(3)-RS232通信

上記のページでは、ターゲット・デバイスを「R5F565NEHDFC」に設定しています。今回使用するマイコンは、「R5F565NEHDFP」なので、「R5F565NEHxFP」に設定してください。

C++(2)-Ethernetフレーム

今回は、PCでEthernetフレームの送信、受信ができる機能を構築したいと思います。開発言語は、C++を使用します。開発環境は、Visual Studioです。

以前、Renesas製のマイコン「RX65N」が搭載されている「GR-ROSE」ボードを2台使用して、Ethernetフレームの送信、受信を行ってみました。

RX(21)-Ethernetフレーム通信

「GR-ROSE」と「GR-ROSE」での通信は無事できましたが、PCと「GR-ROSE」で通信をしてみたいと思い、PCでEthernetフレームの送信、受信ができるアプリケーションを構築することにしました。最初は、Wiresharkを使用しようと思ったのですが、Wiresharkは、Ethrenetフレームを受信することはできますが、Ethrenetフレームの送信ができなさそうなので、断念しました。

それでは、アプリケーションを構築していきたいと思います。今回、アプリケーションを構築するうえでのNpcapを使用します。NpcapはWiresharkなどでも使用されています。