質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
COM

COM(Component Object Model)はMicrosoftによるコンポーネントテクノロジーであり、 ソフトウェアの再利用を目的とした技術を指します。

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

IoT

IoT(Internet of Things)とは、インターネットがコンピュータなどの情報・通信機器のネットワークだけでなく、世の中のある様々なモノに接続されて自動認識・自動制御・遠隔計測などの能力を備えることです。「モノのインターネット」と一般的にいわれます。

Q&A

解決済

4回答

7978閲覧

PythonでPLCと通信を行いたいです。

kotai2001

総合スコア16

COM

COM(Component Object Model)はMicrosoftによるコンポーネントテクノロジーであり、 ソフトウェアの再利用を目的とした技術を指します。

Socket.IO

Socket.IOはNode.js上で動くライブラリであり、すべてのブラウザとモバイルデバイスでリアルタイムのアプリを作動させる事を目的としています。

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

IoT

IoT(Internet of Things)とは、インターネットがコンピュータなどの情報・通信機器のネットワークだけでなく、世の中のある様々なモノに接続されて自動認識・自動制御・遠隔計測などの能力を備えることです。「モノのインターネット」と一般的にいわれます。

1グッド

1クリップ

投稿2020/04/24 05:52

PythonでPLCとの通信を行いたいです。ちょっと相談させてください。

イメージ説明
背景

  1. ある製品の製造現場で検査装置を立ち上げています。
  2. Pythonを利用して、検査結果を判定、保存、製造ラインに指示を出したりします。
  3. PythonはPC上で、検査装置はPLCで駆動しています。

やりたい内容

  1. 現場の要求により、HUBを使わず、PLCのIOラインを直接にPCにつなぎたいと言っています。
  2. PLCとPCとの間には、6CHのInput port(PC→PLC), 4CHのOutput port (PLC→PC)が必要です。
  3. 例えば、PLCからON信号が来ると、これは装置のセンサーに異常が発生した。と判断します。

  逆にPCか信号を送って、装置のステージの駆動を支持したりもします。
イメージ説明

知りたい内容

  1. PLCは24Vレベルですが、これをPCとのやり取りするためには、どんな方法がありますでしょうか?
  2. PCで使える12CH以上のGPIOボードがありますでしょうか?
  3. 上記のタスクに使える、Python ライブラリーがありましたら、教えて頂けますか?

イメージ説明

よろしくお願い致します。

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

PLCのIOラインを直接にPCにつなぎたいと言っています。

私は、GPIOボードなどは使った事はありませんが、GPIOや電圧レベル変換を無しでPLC、PC間を何かしらのケーブルだけで繋ぎたいという事でしょうか?

まず、準備完了、OK判定、NG判定、検査スタートは、入力側なのですか?出力なのですか?どちらからの指示ですか?
例えば、PCから準備完了ですと入力1番をONさせるのですか?それともPLCの出力1番がON(準備完了)なのか一定間隔で調べに行く方ですか?

FX2N-8EXは入力増設ユニットなので1番~3番はPCからPLCへ指示を出すと予想されますが逆の場合出力側へ繋がなければなりません。よって、逆の場合は出力増設ユニットの方ではないでしょうか?

HUBとは?USBのHUBという認識でよいでしょうか?
USBを複数繋がなければならないような感じでは無さそうですが?
Fx3g-60mr/esが本体(cpu内蔵)でそれに増設するユニットとしてFX2N-8EXを使われるという事ですか?本体(Cpu)は別にあるのでしょうか?

すでに回答があるように、PC、PLC間はLANケーブルのイーサネット通信か、RS232cまたはUSBのシリアル通信が多いと思われますが本体側へLAN、RS232C、USBのコネクタを差し込む口がありますでしょうか?
これらの通信で行う場合は、おそらく三菱だとMCプロトコルというものの形式(三菱は使った事がないので)で入力リレーのON/OFF、出力リレーの監視をするので別途マニュアルが必要と思われます。

それ以外だと、これもすでに出ているようにデジタルIOユニット(DIO)と呼ばれるものがあります。
PCI-ExpressなどでPCに増設しメーカーの専用のケーブル(ハーネス)で片方がバラ線の物がありますのでそれを使うと便利かもしれません。両方コネクタの場合別途ターミナルユニットをかまさなければなりません。
デジタルIOユニットですと、電気な配線(圧着端子とかありますか?)が必要かと思います。
そして、PLCから電線を引っ張ってくる必要がありますがDC24VはPLCへ繋いでいる電源をもらうと良いでしょう。いずれにしてもI/O線(準備OK,OK,NG,検査スタタート)の線をもらわないといけないのでついでに。
よって、I/O線4本 + DC24V(+) + 0Vの6芯以上のキャブタイヤケーブルでPLCから引っ張ってくると良いでしょう。
また、ノイズ対策が必要ならシールドを施したケーブルがあると良いでしょう。

投稿2020/04/24 08:37

shinami

総合スコア334

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pepperleaf

2020/04/24 09:32

別の回答にあるように、知りたい内容って、ちょっと検索かければ、結構出てくるのですが、問題は、そこじゃない気がしてます。 システムの構成をどうするか、とか、信頼性(ノイズもですね)とか。 まあ、つなぐだけなら、その辺のDIOでOKで、あとはそれ用のライブラリを使えば、良いですね。 製造現場だと、一日トラブル無く動く事が大事なんで、、ちょっと心配。
shinami

2020/04/24 11:16

あれ?システムの構成でしたか。 >例えば、PLCからON信号が来ると、これは装置のセンサーに異常が発生した。 この事からセンサーに異常が発生したらPLCが出力リレーをONしてそれをPCが検知するという事だと思いましたのでこの様な回答としましたがそういう単純な事ではない? まぁそういう事だと思い勘違いしていましたので私から言える事はここまでです。
pepperleaf

2020/04/24 11:42

いや、質問は単純だと思います。ただ、質問内容から、システムの構成とか考えての質問かとちょっと心配になっただけです。 > 異常が発生したらPLCが出力リレーをONしてそれをPCが検知する 個々には簡単ですね。 でも製造現場だとすると、むき出しの基板は使えないし、"エラーです、PCを再起動"もNGだと思うし、、とつい余計な余計な心配を。
kotai2001

2020/04/24 12:03

ご返答ありがとうございます。HUBと言っているのは、LAN,RS-232Cを中継するものを指しています。質問に書いているように、現場の要求で、LAN, RS-232Cが使えず、I/Oポートからの直接の信号のやり取りする必要があります。やりたいことは、pepperleafさんが言ったように「常が発生したらPLCが出力リレーをONしてそれをPCが検知する」の簡単なレベルのものです。 そして、パソコン側の開発はPythonで行っているため、そのIOポートの制御もPythonでできるものを探していることでございます。よろしくお願い致します。
pepperleaf

2020/04/24 12:19

> PCI-ExpressなどでPCに増設 質問には、USBとありますが、こちらは使えませんか? 使えると選択肢が増えるし、楽じゃない? と勝手に思ったりします。
kotai2001

2020/04/24 12:48

パソコンのUSBポートとPLCのUSBポートですか? その選択肢はいいと思いますが、PLC側のエンジニアがIOポートの利用が便利だと言っていますので。。
pepperleaf

2020/04/25 01:49

> パソコンのUSBポートと パソコンというのは、ノートでしょうか? それならば、PCI-Expressは無理ですね。 > PLC側のエンジニアがIOポートの利用 PLC側の都合。まあ、IOポートの方がタイミングは取りやすいでしょうね。PLCと、PCとの役割分担が分からないので、それ以上は何とも言えませんが、、。
kotai2001

2020/04/25 03:28

どうもありがとうございました。しばらく、解決方法を探し続けます。何らか方法が分かり次第、更新させていただきます。
guest

0

Google 検索で出てくる3番目のQiita記事は私が書きました。

つまりこれですか。それを知っていながら、質問でそれに触れないのはなぜですか? 検討中のものがあって、それがダメだとか改善の余地があるのならそれを質問に書けばより有用な情報が得られる...と私は思いますけれど。

3V-24Vレベル変換をどうするか問題

とか言っているFAエンジニアをクビにして電子回路の基礎を知ってるやつを連れてくる、とかいうのはどうだろう? なんて。
FAだったらどんなノイズもらうかわからないからフォトカプラ使うことが多くないかしら?

投稿2020/04/25 01:56

thkana

総合スコア7703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

  1. 「USB デジタルIO」でぐぐるとたくさん出てきます。24V対応のものも普通にあるので合うやつを探しましょう。

こういう制御機器インターフェースで有名なメーカは、コンテックとインターフェースです。ここであればサポート信頼性など心配はないかと
0. 上記同様
0. この2メーカのものなら付属してます

ましかし、PLCのコントロールはシリアル信号とかLANとかでやるのが多いですが。

投稿2020/04/24 06:25

y_waiwai

総合スコア88024

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kotai2001

2020/04/24 12:00

ご返答どうもありがとうございました。コンテック社やインタフェースで、関連製品を探しています。ひとつ質問していいですか?たとえ、コンテクック社が提供しているボードで、Pythonがサポートしていない場合、どうすればいいですか?ざっくりHPを拝見してたら、VBやLabView関連ライブラリーのみ提供されている気がしまして。。お手数ですが、よろしくお願い致します。
y_waiwai

2020/04/24 12:11

まず問い合わせて、Pythonのライブラリの提供ができるかを聞いてみれば。 どちらも会員登録で、取説やライブラリのDLができると思います
pepperleaf

2020/04/24 12:13

"USB GPIO Python" で検索したら、そこそこありましたが、、。既にこちらがあったので、書くの止めましたが。(ついでに 24v までだと、ちょっと外したが) もっとも、C/C++ は大抵サポートされているので、そちらを挟むのもあり。ただ、制御系で、Pythonの実績はどれくらいあるのでしょうか?
kotai2001

2020/04/24 12:57

USB GPIO Pythonの場合、FT232Hを使っているものがあります。Google 検索で出てくる3番目のQiita記事は私が書きました。ただし、FT232Hの場合、3V出力で、3V-24Vレベル変換をどうするか問題があります。Pythonを利用する理由は、Tensorflowでメインプログラムを作り、同じPythonでPLC側との通信ができればと思っているからです。
kotai2001

2020/04/24 12:59

y_waiwaiさん ありがとうございました。
guest

0

コンテクック社に問い合わせた結果、「Pythonはサポートしない」ことが判明しました。

投稿2020/04/27 07:30

kotai2001

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問