合計 昨日 今日

OSに依存しないEthernet通信...(続)

[このトピックは解決済みです]

フォーラムルール
フォーラムルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Name: vbんcvbn
[URL]
Date: 2017年3月09日(木) 09:11
No: 1
(OFFLINE)

 OSに依存しないEthernet通信...(続)

最近分が立てたトピック: <<OSに依存しないEthernet通信アプリケーション(C言語)>>で
YuO様 と みえ様の助けで、OSやプラットフォーム依存しないEthernet通信のcoding方法(Boost.Asio)が分かりましたが、
本格にアプリケーションに組もうとしたら、下記の2点に気になりました。

1) 開発環境PCにboostをインストールしなければならないのは当然ですが、
  ターゲットPCの実行環境にもboostをインストールしなければならないのでしょうか。

2)サーバとクライアントに関しても概念的に不明な処があります。
  制御装置とPCとの間「平等に」メッセージのやり取りを行うので、
  どっちにサーバにすべき、どっちにクライアントにすべきかについて真剣に悩んでおります。
  そもそも、サーバとかクライアントを分ける必要はあるのでしょうか。

どうか宜しくお願いします。

Name: みえ
[URL]
初心者(8,817 ポイント)
Date: 2017年3月09日(木) 15:49
No: 2
(OFFLINE)

 Re: OSに依存しないEthernet通信...(続)

前回のトピックの冒頭にあった、「シーケンス制御装置とデータや命令のやりとりをEthernet経由でやりたい」というのがvbんcvbnさんが実現したいことだと思うのですが、
こちらのトピックにも同様の説明、もしくはより詳しい内容を記載していただけると他の方もコメントしやすくなると思います。

vbんcvbn さんが書きました:1) 開発環境PCにboostをインストールしなければならないのは当然ですが、
  ターゲットPCの実行環境にもboostをインストールしなければならないのでしょうか。

作成するプログラムに boost を統合する(static linking) こともできますし、共有ライブラリとして別に配布する (dynamic linking) こともできます。

Static and shared libaries
http://www.boost.org/build/doc/html/bbv ... nkage.html

いずれを選ぶにしろ、プログラムをビルドする方法が変わるだけで開発するコードに影響はありません。まずは簡単なプロトタイプを作って両方試してみるとよいかもしれません。後からリンク方法を変更するのも容易です。また、前回の質問を踏まえると Windows と Linux の両方で動かすことを想定されていると思いますので、それぞれの OS で一度プロトタイプを作ってみた方がいいかと思いますs。

vbんcvbn さんが書きました:2)サーバとクライアントに関しても概念的に不明な処があります。
  制御装置とPCとの間「平等に」メッセージのやり取りを行うので、
  どっちにサーバにすべき、どっちにクライアントにすべきかについて真剣に悩んでおります。
  そもそも、サーバとかクライアントを分ける必要はあるのでしょうか。

設計に関する話は完全に環境依存なので、申し訳ないのですが、実現したいことを理解せずに無責任な回答はできません。

第一には「制御装置」の仕様に左右されると思います。装置のマニュアルに、イーサネット経由の通信に関する何らかの説明が必ずあると思うのですが、確認されましたか。
どのような環境で利用されるのかも不明ですが、その場所のネットワーク構成や、セキュリティー対策に関する考慮 なども必要になるかと思います。

以下のサイトで、PLC をサーバー/クライアントのどちらとしても使えた実績が紹介されているので、装置によってはどちらもいけるのかもしれませんね。シーケンス制御については私は門外漢なので、まったく関係ない情報でしたらすみません。

第69号(2008年7月2日発行) 技術レポート「PLCでソケット通信 ~三菱電機社製での実装例~」|ソフテックだより|株式会社ソフテック
http://www.softech.co.jp/mm_080702_plc.htm

Name: Math
[URL]
Date: 2017年3月09日(木) 21:26
No: 3
(OFFLINE)

 Re: OSに依存しないEthernet通信...(続)

>制御装置とPCとの間「平等に」メッセージのやり取りを行うので、
>  どっちにサーバにすべき、どっちにクライアントにすべきかについて真剣に悩んでおります。
>  そもそも、サーバとかクライアントを分ける必要はあるのでしょうか。
制御が目的なら”アドホック”でしょう。

Name: vbんcvbn
[URL]
Date: 2017年3月10日(金) 13:12
No: 4
(OFFLINE)

 Re: OSに依存しないEthernet通信...(続)

みえ様へ
良く分かりました!
非常に丁寧なご説明ほんとうに感謝致します。

Math様へ
情報有難うございます。
ただ、自分調べたところ、”アドホック”は無線LAN通信規格みたいで、有線にも利用できるのでしょうか。 ご利用経験を紹介いただけませんか。

また宜しくお願い致します

Name: Math
[URL]
Date: 2017年3月10日(金) 23:10
No: 5
(OFFLINE)

 Re: OSに依存しないEthernet通信...(続)

失礼。自分は強電屋だったので電力会社でUnixのマウス操作で6千V,2万Vを入り切りをみてきたので勘違い。1:1通信の意味です。
[MAC層のプロトコルとしては、Ethernet/802.3が有名ですが、無線LANはこれらのメタル(電線)接続と異なり、空気中を飛び交う電波にプロトコルを乗せて通信を行いますので、Ethernetのようなメタル接続の通信に比べて、回線を維持するために考慮すべき事項が増えてきます。昨今、PLC(電力線搬送通信)でも無線LANと同じような技術が使われはじめ、電波を介した通信としては最適なMAC層のプロトコルの1つと言えると思います。]
ある大企業の研修所で三菱電機のシーケンサのラダー図を作成したくらいでシーケンサはよくしらないですが、シーケンス制御はマイコンの機械語でよく知っていてラダープログラムも多く経験しました。(特殊なエレベーターの制御など)
製造業などのシーケンス制御の場合、安定性、耐久力、保守のしやすさが要求されるので”安定した(よく使いこまれた)”C言語の技術がいいと思いますが。(OSに依存しない為の”Boost”は今年中に策定されるC++17にもりこまれるであろうC++の新機能を実装することもやっていて、新技術を試すのにはいいでしょうが。
( ”Boost"はオーバーヘッドがありすぎませんか。OSに依存しないEthernet通信が”それほどまでして”必要なのは何故?)
https://ja.wikipedia.org/wiki/Boost

Name: 一文字
[URL]
Date: 2017年3月12日(日) 06:04
No: 6
(OFFLINE)

 Re: OSに依存しないEthernet通信...(続)

Math様へ
横からすみませんが
>”Boost"はオーバーヘッドがありすぎませんか
Boostってオーバーヘッドが大きいでしょうか。どうして?

Name: 一文字
[URL]
Date: 2017年3月12日(日) 06:04
No: 7
(OFFLINE)

 Re: OSに依存しないEthernet通信...(続)

Math様へ
横からすみませんが
>”Boost"はオーバーヘッドがありすぎませんか
Boostってオーバーヘッドが大きいでしょうか。どうして?

Name: Math
[URL]
Date: 2017年3月12日(日) 23:15
No: 8
(OFFLINE)

 Re: OSに依存しないEthernet通信...(続)

キーエンスに電話で問合せたところうちはシーケンサを提供するだけでパソコンはやらないのでわからないが"コマンドを”受け取るだけなので分からない事があれば聞いてください”とのことであった。簡単な文字列の転送に手間をかけすぎ!でしょう。
一応Boostをインストールして動かして見たけど”機器の制御”向きでないでしょう。(安定、耐久、信頼性、実績、保守の容易さ、どれも満たせいでしょう。(bugったときにBoostの専門家がすぐ対応できる))

Name: vbんcvbn
[URL]
Date: 2017年3月13日(月) 13:21
No: 9
(OFFLINE)

 Re: OSに依存しないEthernet通信...(続)

> 安定、耐久、信頼性、実績、保守の容易さ、どれも満たせいでしょう

厳しい状況ですね。非常に意外でした。

boostってこれまで使った事ないですけど、権威性高いという話が聞いた事はあります。
なにせ、C言語のバージョーンアップを策定するメンバーが作ったライブラリーだと言われていますね。
そんなにもろいものでしょうか。

Name: Math
[URL]
Date: 2017年3月13日(月) 15:00
No: 10
(OFFLINE)

 Re: OSに依存しないEthernet通信...(続)

>boostってこれまで使った事ないですけど、
まだ試してなかったのですか..。まずざっと簡単なサンプルを動かせば分かるとおもうけど。
>権威性高いという話が聞いた事はあります。
制御用に”24時間365日安定して”るという権威性が高い?
>なにせ、C言語のバージョーンアップを策定するメンバーが作ったライブラリーだと言われていますね。
C言語ではなく”C++"ですね。(制御用の基幹部分はC言語だよね。C++のライブラリーって凄い無駄が多く”でかい”ですよね。)
>そんなにもろいものでしょうか。
もろい。bugはあるし規格はFixしないし実装はコンパイラ依存だし責任者はいないし。(安定してない最先端の技術に挑戦してるようだし)
(メーカー保証のようなものはないし)
”制御用”、”事務用”、”研究用”と分ければ”研究用”でしょう。
(その中でも規格化され実装も安定してる部分もあるのでしょうが...。)

Name: vbんcvbn
[URL]
Date: 2017年3月14日(火) 10:50
No: 11
(OFFLINE)

 Re: OSに依存しないEthernet通信...(続)

[解決!]

貴重なご意見参考になりました
改めて皆様にお礼申し上げます。


Return to C言語何でも質問掲示板

オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[17人]