ハードルが高いがpythonにはライブラリがある
というわけで簡単なものをまずは作成してみようと思う。しかもサーバーではなくクライアントから。ちなみにこのmodbusではPC等クエリを投げる側がクライアントで端末等のレスポンスを返す側がサーバーらしい。
目標物
簡単な入力画面と送信ボタンを作り、modbusTCPのクエリを投げて、応答を表示するものを作成する。
環境
OS:Windows10
言語:python(anaconda)
通信:modbusTCP(pyModbusTCP)
操作、入力画面:pyModbusTCP
進捗と課題等
項目 | 進捗 | 課題等 |
画面作成 | 100% | |
クライアント通信 | 100% | 現実的なクエリを投げたい |
サーバー通信 | 100% | サーバー作成時に現実的なレスポンスをするには? └Databankでサーバーが持っている値を変化させる |
簡単というだけあってこんなもんか?1つ1つのウェイトが高い気もするが…
覚書き
何はともあれライブラリのインストール
もちろんながら動作確認するためにはサーバー側も必要。というかサーバー側はあくまでサンプルだからなというライブラリ作成者からのお言葉が…今回はクライアントの為とりあえずつながればいい
サーバーはライブラリ作者のシンプルな方のサンプルを動かすだけだとオール0を返す。これでは味気ないためDataBankのset_wordを使い、値を変更する。
通常はあり得ないがデバッグにおいてはクライアントとサーバーの両方操作できた方がいい。一画面に両機能を集約。(ごちゃごちゃしたので分けた方がよさそう。完全に分けるかタブで分ける?)
単発ならともかく出力画面に渡すのどうやろう。いや単発でいいだろう。sg.outputで瞬殺だった。
感想等
動作に納得がいかず機能を追加しているうちにクライアントとサーバー両方作ってる感が出てきた。発散しそうなのでいったん打ち切って、クライアントのみの機能を発展させたい。
今になって気づいたがサーバーのクエリ受信→レスポンス送信にラグ(待ち時間)を持たせることができる気がしない。
リアリティ以前のため、サーバー側は1から作ることになりそう(壁が絶壁化した)
└ここ作者の公開しているコードを直で触れば可能な気もする
コメント