![見出し画像](https://assets.st-note.com/production/uploads/images/29486075/rectangle_large_type_2_c61bb9396482f2e3792108bd78ddecf2.png?width=800)
Siemens SIMATIC IoT2020 を試す。
Siemens SIMATIC IoT2020とは?
Siemens SIMATIC IoT2020は産業用IoT(IIoT)ゲートウェイです。
詳細はアールエスコンポーネンツさんの紹介ページ、製品ページが日本語訳されています。
SIEMENS SIMATIC IOT2020紹介ページ
http://jp.rs-online.com/web/generalDisplay.html?id=siemens-simatic-iot2020
シーメンス 産業用IoTゲートウェイ 「SIMATIC IoT2020」商品ページ
http://jp.rs-online.com/web/p/iot-development-kits/1244037/
第一印象は…Intel Galileo Gen2(以下Galileo2)に似てる!でした。
Galileo2との違いは主に
・DINレールに取り付けられる専用ケース
・電源コネクタは端子台が付属
・RAM 512MB
となります。
Operating Instructions(操作説明書)は以下のサイトにてダウンロードできます。
https://support.industry.siemens.com/cs/document/109741658/simatic-iot2020-simatic-iot2040?dti=0&lc=en-WW
動作を確認するために必要なものは?
動作を確認するには以下が必要になります。
・FTDI Chip インターフェイスコンバータケーブル 3.3 V TTL USB-UART ケーブル
http://jp.rs-online.com/web/p/interface-development-kits/0429307/
・Unifive ACアダプタ US301210-PL03B, 出力電圧:12V dc
http://jp.rs-online.com/web/p/plug-in-power-supply/0467444/
・Micro SDカード,容量:32 GB,クラス:10, UHS-3
http://jp.rs-online.com/web/p/secure-digital-cards/1239689/
上記以外でも汎用品が使用できます。
Siemens SIMATIC IoT2020の電源コネクタは端子台のため、DCジャックと配線材を用意するとACアダプタを加工せずに使用できます。
・2.1mm標準DCジャック 中継用 MJ-077N
http://akizukidenshi.com/catalog/g/gC-06343/
・2.1mm標準DCジャック⇔スクリュー端子台
http://akizukidenshi.com/catalog/g/gC-08849/
その他にPC、PCからmicroSDに書き込むためのアダプタを用意します。
また、GPIOの動作を確認する場合はLED、抵抗、ブレッドボード、ブレッドボード用の配線等を用意しましょう。
SDカードにソフトウェアイメージを書き込む
Siemens SIMATIC IoT2020はSDカードからブートするため、SDカードにソフトウェアイメージを書き込む必要があります。
ソフトウェアイメージは以下のサイトにてダウンロードが可能です。
https://support.industry.siemens.com/cs/document/109741799/simatic-iot2000-sd-card-example-image?dti=0&lc=en-WW
※ダウンロードにはサイトへの登録が必要です。
Example_Image_V2_1_2.zip(※)をダウンロードし、展開するとiot2000-example-image-iot2000.wic(※)を入手できます。
iot2000-example-image-iot2000.wic(※)をWin32 Disk Imager等を使用しSDカードへ書き込みます。
※4月17日時点でのファイル名です。
SDカードを取り付ける。
SDカードを取り付方は上記の画像を参考にしてください。
①ケースのフタを開けます。
②SDカードスロットのホルダーを下に押し下げ、上に持ち上げ開きます。
③SDカードを差し込みます。(スロット上に置きます。)
④ホルダーを閉じ上に押し上げ固定します。
USB-UART ケーブルを接続する。
Siemens SIMATIC IoT2020の起動を確認するためUSB-UART ケーブルを接続します。
接続するコネクタはSDカードスロットの左上にある[X14]です。
USB-UART ケーブルのGND位置(黒色の配線)と[Pin1]を合わせて接続してください。
USB-UART ケーブルをPCに繋ぎターミナルソフトを起動します。
ターミナルソフトとしてTera Termを使用する場合、上の画像のように設定を行ってください。
DCジャック中継用コネクタと端子台を接続する。
Siemens SIMATIC IoT2020に付属の端子台に電源線を接続します。
Operating Instructionsを参考にプラスとマイナスを確認して接続してください。
ACアダプタを使用する場合、DCジャックに合わせて上のような変換ケーブルを作成するとACアダプタを加工せずに使用できます。
電源を接続する。
Siemens SIMATIC IoT2020には電源ボタンは無いため電源を接続すると起動します。
PWRランプが点灯しターミナルソフトにシーケンスが表示されます。
「iot2000 login:」とプロンプトが表示されたらアカウント「root」でログインできます。
※パスワードは設定されていません。
LEDをチカチカさせる
Siemens SIMATIC IoT2020でOSの起動まで動作を確認できたので、次にGPIOを使ってLEDをチカチカさせて見ましょう。
Siemens SIMATIC IoT2020はArduinoやEclipseなどのIDEに対応していますが、今回はコンパイラとしてgcc、ライブラリとしてmraaを使いお手軽にLEDをチカチカさせたいと思います。
mraaについては以下のサイトで詳細を確認できます。
https://iotdk.intel.com/docs/master/mraa/
Siemens SIMATIC IoT2020にあるArduino互換のピンソケットにブレッドボードを経由してLEDを取り付けます。
上の写真では2番ピンとGNDにLED、抵抗を接続しています。
mraaでは物理的なピン番号とライブラリで使用するピン番号が異なることがあります。
プログラムを作成する前に mraa-gpio コマンドで対応を確認しておきましょう。
#mraa -gpio list
上の画像でも表示されていますが上記のコマンドで確認可能です。
#include "mraa.h"
#define LED_IOPIN 2 //GPIO02
static int my_led;
int main(int argc, char *argv[])
{
mraa_init();
my_led = LED_IOPIN;
mraa_gpio_context myledgpio;
myledgpio = mraa_gpio_init(my_led);
mraa_gpio_dir(myledgpio, MRAA_GPIO_OUT);
mraa_gpio_write(myledgpio, 1);
sleep(1);
mraa_gpio_write(myledgpio, 0);
sleep(1);
mraa_gpio_write(myledgpio, 1);
sleep(1);
mraa_gpio_write(myledgpio, 0);
sleep(1);
mraa_gpio_write(myledgpio, 1);
sleep(1);
mraa_gpio_write(myledgpio, 0);
sleep(1);
mraa_gpio_write(myledgpio, 1);
sleep(1);
mraa_gpio_write(myledgpio, 0);
sleep(1);
return 0;
}
LEDをチカチカさせるプログラムが上記になります。
プログラムの概要としては
mraaの初期化
↓
GPIOの設定
↓
LEDを1秒毎に点灯、消灯を4回行う
になります。
プログラムをblink_led.cというファイル名で保存しコンパイルします。
# gcc -g ./blink_led.c -o ./blink_led -lmraa
# ./blink_led
上記のコマンドでコンパイル,実行できます。
プログラムを実行すると上の動画のようにLEDが1秒毎に点灯、消灯を4回行います。
最後に
OSの起動確認からGPIOの動作確認までを行いました。
Siemens SIMATIC IoT2020には今回使用したGPIO以外にもイーサネットポートやMini PCI ExpressスロットなどIIoTゲートウェイとして活用できる機能がたくさんあるので活用してみてください。
この記事は
この記事は 2017/04/19 に ものづくりログ へ投稿した記事をnoteへ転記しました。