問題タブ [plc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3067 参照

c# - Libnodave: connectPLC が -1 を返す

Libnodave dll を使用して CP 343-1 リーンでイーサネット経由で Siemens CPU315-2 DP に接続しようとしています。

ダウンロードファイルに含まれるサンプルプログラム「simpleISO_TCP.cs」を試してみました。関数 openSocket は問題なく動作しますが、関数 connectPLC は常に -1 を返します。これは、PLC への接続が失敗したことを意味します。

この問題の原因を知っている人はいますか?

PS: Windows 7 64 ビットで Visual Studio 2012 を使用しています。

0 投票する
1 に答える
465 参照

plc - Phoenix Contact PLC ソフトウェアはどの言語で組み立てられていますか?

構造化テキスト言語と命令リスト言語で作成したプログラムのアセンブル コードを見つけるのに苦労しています。書かれたコードのバイナリ コードが見つからず、どの ISA で変換されているかわかりません。これらのバイナリ コードの逆アセンブラを作成しました。

0 投票する
1 に答える
274 参照

plc - オムロンPLCで<>を使用

ラダーロジックに<>305があります

その後、私はそれよりも少なく、より大きくなります

エンコーダーの現在の値(d19720)と保存されている値(d3890)をチェックして、それらが同じ値であることを確認します。エンコーダーであるため、値が+または-2になるのにそれほど時間はかかりません。

上記のコードを保持する方法はありますが、現在の数+/- 4よりも大きいか小さいかを言いますか?

したがって、保存された値が500の場合、大きい方は504まで、小さい方は496まで表示されません。

0 投票する
1 に答える
389 参照

node.js - Node.js: 同じメッセージの複数のコピー

node.js を使用するアプリケーションに問題があります。Web ページと PLC 間の通信を可能にする小さなアプリケーションを作成しました。Web ページとの通信は socket.io に基づいており、PLC との通信は net.createConnection に基づいています。

私のアプリケーションは Web ページからコマンドを受け取り、標準のフェッチ/書き込みプロトコルでメッセージを作成し、それらのメッセージを PLC に送信します。PLC の応答も F/W プロトコルに基づいています。アプリケーションから応答メッセージを受信すると、デコードして Web ページに送信する情報はごくわずかです。

すべてのプロセスが機能していますが、すべての操作 (フェッチまたは書き込みの場合は重要ではありません) の後、PLC からのメッセージがもう一度複製されることがわかります。例えば:

これが PLC の問題であるかどうかを確認するために、wireshark を使用しましたが、メッセージは正しく、1 つだけです。node.js バッファなどに問題があると思います。

なにか提案を?

コードは次のとおりです。

!!! アップデート !!!

私は他のいくつかのテストを行いました.結果は、メッセージの実際のエンキューがないということです.テストの結果は次のとおりです:

等々

0 投票する
2 に答える
6351 参照

serial-port - PC から PLC への RS232 接続は、USB2RS232 ケーブルを使用するより遅いですか?

USB2RS232ケーブルを介してPLC(三菱Qシリーズ)に接続されたPCがありました。ケーブルは PC 側に接続され、次にシリアル ケーブルに接続され、次に PLC に接続されました。ボーレートを 19200 に設定したところ、すべて正常に動作しました。私の問題は、時々PCがブルースクリーンになることでした。ダンプ ファイルを確認したところ、問題は USB2RS232 ケーブル (ftdi) のドライバーに関連しているようでした。最新のドライバーに更新しましたが、まだブルースクリーンが発生します (PC は Windows 7 を実行していました)。

とにかく、専用の RS232 ポートを備えた別の PC に PC を交換しました。現在、PLC による応答によって示される通信の問題が発生し続けています。たまたま、PC と PLC の両方でボーレートを 9600 に下げました。問題は解決したようです。

私の質問は、なぜ USB2RS232 ケーブルを取り外すと通信速度が遅くなるのですか? どちらのデバイスも 19200 を超える速度で通信できるため、シリアル ポート (PC) からシリアル ポート (PLC) にシリアル ケーブルで接続する方がよいと考えていました。

編集: 問題はおそらく解決されました - まだテスト中です

皆さんからの入力のおかげで、問題が解決したかもしれません。RS232 から RS232 へのストレートを使用する場合に速度を 19200 に戻すために行った次のポイントを次に示します。

  • 機器にノイズは検出されませんでしたが、シールド ケーブルが使用されました。
  • PC プログラムは、データを PLC に送信する間に 100 ミリ秒待機します。100ms が PLC スキャン時間の適切な近似値であることをどこかで読みました。
0 投票する
1 に答える
543 参照

ruby - 産業環境向けのルビーを使ったプログラムPLCのプロジェクトがあるかどうか誰か知っていますか?

私はオムロンデバイスのPLCプログラマーですが、今ではルビーがとても素敵な言語だと思いました。組み込みデバイス用の組み込みRubyがあるのを見ました。PLC用の宝石があるかどうか疑問に思っています。そうでない場合は、PLCの開発方法を研究することを検討するかもしれません。

0 投票する
6 に答える
14121 参照

plc - PLCラダープログラミングに最適なIDE

最近、PLC用のラダーロジックプログラミングを学ぼうとしていますが、Step7cx-programmerよりも優れたラダープログラムを作成するためのIDEがあるかどうか知りたいですか?使用できるVisualStudioまたはNetbeans用のプラグインはありますか?最後に、LinuxまたはMicrosoft WindowsでPLCを使用する方が良いですか?

更新1:これについて調べたところ、ラダープログラミングはPLCのブランドやそのモデルに依存していないことがわかりました。そのため、質問ではブランドについて言及しませんでした。

0 投票する
2 に答える
1812 参照

c# - PLC S7-300 シリアル hexdata をフェッチする方法

イーサネット通信ポートを備えた Siemens PLC S7-300 があります。plc のフレーム データを取得するために使用できる Java またはその他の言語コーディングの種類はどれですか? この PLC は、step-7 ソフトウェアとのみ通信します。

このフレーム構造データは、テキスト ファイルの xml にも保存できるため、インターネットに継続的に送信できます。

私を助けてください

0 投票する
5 に答える
3199 参照

algorithm - 自作モジュラスの巧妙な実装

いくつかのレガシー ソフトウェア (RSLogix 500、聞かないでください) を使用して PLC をプログラミングしていますが、モジュラス演算をネイティブにサポートしていませんが、必要です。モジュラス、整数除算、ローカル変数、切り捨て操作 (ただし、丸めでハックできます) にはアクセスできません。さらに、利用可能なすべての変数は、データ型別に並べ替えられたテーブルに配置されています。最後に、たとえば12345.678 MOD 10000 = 2345.678.

式を作成すると、次のようになります。

2 つの明白な実装があります。

実装 1: 浮動小数点除算を実行しますdividend / divisor = decimal quotient。次に、切り捨て操作を一緒にハックして、integer quotient. それに を掛けて、divisorと の差を求めます。dividend結果は になりremainderます。

さまざまなタイプの変数がたくさん含まれているため、これは好きではありません。変数をサブルーチンに「渡す」ことができないため、複数の異なる変数テーブルにあるグローバル変数の一部を割り当てるだけで済み、従うのは困難です。残念なことに、「従うのが難しい」ことは重要です。なぜなら、保守作業員がいじるのに十分なほど単純である必要があるからです。

実装 2: while のようなループを作成しますdividend > divisor divisor = dividend - divisor。これは非常にクリーンですが、ループを使用しないという PLC プログラミングの大きなルールの 1 つに違反しています。誰かが不注意でインデックス カウンターを変更すると、無限ループに陥り、機械が狂ったり、回復不能な障害が発生したりする可能性があるからです。プラス ループは、メンテナンスのトラブルシューティングが困難です。さらに、ループ命令すらありません。ラベルとジャンプを使用する必要があります。うわー。

だから、誰かが巧妙な数学のハックや、これらのいずれよりも賢いモジュラスの実装を持っているかどうか疑問に思っています。+ - * /、指数、平方根、三角関数、対数、絶対値、および AND/OR/NOT/XOR にアクセスできます。

0 投票する
1 に答える
1324 参照

plc - PLC プログラミングの開始

PLC プログラミングに興味が湧いてきたので、試してみようと思っています。したがって、ハードウェアを探すのはもうすぐなので、実際のシステムをシミュレートする必要があります。これは私がやりたい方法です(例):

  1. 実際のシステムをシミュレートします。ブリードバルブとインレットバルブを備えた水タンク、もちろんいくつかの水位センサー。これらは PLC によって制御およびチェックされます。

  2. バルブを制御し、センサーから値を取得するための PLC シミュレーター。HMI/SCADA (PLCsim ?) にもデータを送信します。

  3. ロジックを PLC にプログラムするためのソフトウェア。(Step7 ?)

  4. エンド ユーザーが手動で値を確認し、バルブを制御するための GUI (InTouch ?、ControlWeb ?、WinCC ?、LabView ?)

これがソフトウェアを使用して完全に可能かどうか、また可能性があるかどうかはわかりません。アドバイスやアイデアをお待ちしております。

ありがとう