こんにちは古川企画の古川です。今日はArduinoをPLC/シーケンサや工場で使われている制御盤と接続する方法について書いてみたいと思います。近年、工場DIYなどの観点から気軽に電子工作できるArduinoやRaspberry Pi などを工場の制御盤と接続してみるという試みが行われています。最終的には、メーカーのしっかりした設備を導入するとしても、思いついたアイデアが本当に効果があるのか事前に試してみることで大きな失敗を事前に防ぐことができます。
目次
I/Oによる接続
RS-232C/RS-485による接続
Ethernetによる方法
I/Oによる接続
送受信したいデータがHIGH/LOWだけで済むならリレーなどを利用してやり取りすることができます。ただし、接続する制御盤によってはチャタリングを嫌ってトランジスタが指定されていることもあるので注意が必要です。
Arduino側から信号を送りたい場合、Arduinoでトランジスタを使ってスイッチングするには、弊社のArduino用トランジスタシールドが便利です。工場などの制御盤に対して2線を接続するだけで、ON/OFFを伝えることができます。またプログラミングもデジタルピンのHIGH/LOWだけで済むため、低い開発コストで導入できます。
一方、Arduino側に信号を受け取りたい場合には、制御盤は24VなどArduinoの5Vより大きい電圧ですから、リレーやトランジスタをスイッチングしてもらい、Arduinoのinput_pullupコマンドを使って、デジタルピンとGNDに接続することでスイッチングを受信することができます。
RS-232C/RS-485による接続方法
Arduinoのシールドを使ってRS-232CやRS-485によって通信を行います。稼働中の工場で試験する場合には、前述したI/Oによる方法がオススメです。というのも、RS-232Cなどのシリアル接続では、PLC/シーケンサ側で接続確認を行うことがあり、信号線が長かったり、環境が悪かったりした際、ノイズの影響を受け、エラーを出力する場合があります。
とはいえ、シリアル通信による方法を用いれば、稼働中のワークNo.や工程No.などを受信することができるため、詳しいデータを必要とする場合は、シリアル通信にする必要があります。
RS-232/485シールドでは、Arduino UNOでRS-232と485の通信を行うことができます。シリアル通信を用いる場合は、相手先のシリアル通信のデータテーブルの仕様に合わせて送受信フォーマットを決める必要があります。
Ethernetによる方法
Ethernetによる方法は私はまだ実際の現場で利用したことはありません。一方、工場設備ではEthernetによる接続が多く利用されるようになってきており、Ethernetによる接続方法も選択肢に入れておいてよいでしょう。こちらの作例ではEthernetシールドによる接続と通信について述べられています。
以上です。皆さんの参考になれば幸いです。
※Image by Dewald Van Rensburg from Pixabay