問題タブ [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.
computer-science - 10個の整数が前のサイクルから変更されたかどうかを確認する最も簡単な方法
これはPLCプログラムであるため、値は知らないうちに変更される可能性があります。誰かが最後のサイクルから5から10個の整数が変更されたかどうかをチェックするハッシュアルゴリズムを考えることができますか?私はこれをできるだけ速くする必要があります。
programming-languages - PLC プログラミングで Else If ではなく Elsif を使用する理由
私は PLC プログラマーで、なぜ予約語 elsif (つまり、 E なし) が使用されているのか疑問に思っています。私は、elseif やその他の組み合わせが予約語として使用されていないことを知っています。これを他の言語で使用した履歴はありますか。もしそうなら、なぜですか?タイピングの手間を省くために、e をおそらく 1 日に 5 回タイプするのを間違えているようです。
logic - ステップ 7 v5.5 は v5.4 と互換性がありますか?
最初にステップ 7 v.5.4 で作成され、5.5 で開かれ、編集され、保存されたプロジェクトを 5.4 で再度開くことができるかどうかを誰かが知っていますか?
algorithm - PLC チェックバイト不明
古いマシン (PLC) がデータ交換でチェック バイトを生成する方法を理解しようとしていますが、何がどのように行われるのか、またはどのようなアルゴリズムが使用されているのかわかりません。
私はマシンに関する非常にまばらなドキュメントを持っています.私はすでに通常のcrc、ccitt crc、xmodem crcタイプなどのいくつかのアルゴリズムを試しています...そして誰も正しい結果を与えられていません.
メッセージは次のように形成されます: M*NNNNNNwwSSdd
どこ:
M* - 固定
NNNNNN - N は数字またはスペースです
ww - w も数字またはスペース
SS - S は文字またはスペース
dd - da 番号またはスペース
一部の例では、次のバイト チェックが生成されます (ここで、バイト '×' は実際にはスペース文字 ' ' です。この文字は、スペースの数を簡単に識別できるようにするためだけに使用します)。
あ:
- M*614976××××12 -> a
- M*615138×××××× -> a
b:
- M*615028××××12 -> b
- M*615108×××××× -> b
c:
- M*614933×××××× -> c
- M*614956××××12 -> c
日:
- M*614934×××××× -> d
- M*614951××××12 -> d
e:
- M*614942×××××× -> e
- M*615079×××××× -> e
f:
- M*614719××××12 -> f
- M*614936×××××× -> f
g:
- M*614718××××12 -> g
- M*614937×××××× -> g
時間:
- M*614727×××××× -> h
- M*614980××××12 -> h
私:
- M*614734××××12 -> 私
- M*614939×××××× -> 私
- M*×××××××××××× -> i
z:
- M*××××××××SC12 -> z
じ:
- M*××××××××××12 -> j
y:
- M*××××××××SC×× -> y
組み合わせは他にもありますが、これで十分です。
もう 1 つの特殊性は、チェック バイトの結果が定義された範囲 (char 0x60 から 0x7F まで) にのみ存在することです (マシンが OK を返すまでこの範囲でループするため、現在のソリューションは機能しています)。
私の質問は、このチェックバイトがどのように計算されるか知っていますか? PLC マシンでデータの整合性を計算するためのより単純なアルゴリズムを教えてください。結果のバイト チェックが 1 文字だけであることは、より単純である必要があります。
ありがとう
android - iOS アプリでの認証方法
TCP/IP 経由で PLC コントローラ データを読み取るクライアント用の iOS アプリケーションを開発しています。PLCデバイスにはユーザーを認証する方法がありません..基本的に、探しているものがわかっている場合はネット上にあります。必要に応じて、データを読み取り、レジスタに書き込むことができます。このアプリケーションの目的は、アプリで何らかのアクセス許可または認証を許可することです。例。上記のデバイスのエンジニアは、レジスタにアクセスする権限を持っていますが、メンテナンス ワーカーは読み取り専用のアクセス許可しか持っていません。LAN 上にある PLC デバイスに認証方式を追加する方法はありません。アプリを介してそれを行う方法を考え出す必要があります。
助言がありますか?
心に留めておくべきこと...
1: 多くの場合、これらの PLC デバイスは、インターネットにアクセスできる LAN 上にありません。
2: 多くの場合、iPAD/iPhone は、あらゆる種類の Web ベースの認証のためにインターネットにアクセスできません。
3: このアプリも Android で開発する必要があるため、認証はクロスプラットフォーム対応である必要があります。
4: さまざまな企業のさまざまなクライアントには、ユーザーのアクセス許可を "調整" および "カスタマイズ" する機能が必要です。
何か明確にする必要がある場合はお知らせください。ありがとう!
java - Web ベースの Java アプリケーションを使用したリモート ハンドリング PLC
ユーザーがシミュレーションを作成してロジックを実行できるシミュレーター アプリケーションを開発しています。現在、プロジェクトの第 2 段階では、Web ベースのアプリケーションを使用したハードウェア トリガーが必要です。modbusシリアル通信を使用しているJavaコードを使用してPLCマシンと対話する方法についての情報が必要でしたが、他のより良い解決策があれば変更できます。私の調査によると、OPCサーバーを見てきましたが、そこから何も得られませんでした。フローとは何かを理解するのを手伝ってくれる人が欲しいです。これをどのように進めるか。アプリケーションと PLC と通信するためのドライバーを作成する必要がありますか?
このタスクに完全に近づくには、何をする必要がありますか。リンクがある場合は共有してください
ありがとうございました
plc - CX-Programmerのフラグとは?
PLC のドキュメント (Omron CP1L PLC および CX-Programmer) を読んでいるときに、説明が不足しています。たとえば、「Flag」を「 in*struction 間のインターフェイスとして機能するビット」と定義していますが、それは flag がある種の条件付きPower Flowであることを意味しますか?
「差動アップ/ダウン」、「キャリーフラグ」という用語でさらに混乱しますか? フラグとは何ですか? また、ラダー ロジックでフラグは何をしますか? それらは簡単な使用方法ですか、それともラダーでプログラムする必要のない単なる概念ですか?
[編集]
命令のどこでフラグを追加/変更/削除しますか? 編集を開きますが、フラグがありません。
programming-languages - オムロンPLCのラダープログラミングの背後にある言語は何ですか?
PLCのラダープログラミングは何に変換されますか?グラフィックコマンド(オープンコンタクト、命令など)はBASICまたはC命令ですか、それともアセンブリ言語に直接コンパイルされますか?
plc - 「@」記号はどういう意味ですか(オムロンPLC)?
ラダープログラミングで「 @ 」記号はどういう意味ですか?ドキュメントでは、@がバイナリモードで間接DMアドレスを指定していると説明しています...メモリ領域をオフセットします:それは実際にはどういう意味ですか?
ドキュメントから次の画像を検討してください。
アドレスの内容(16ビットまたは10進数の32767)をワードアドレスにするにはどうすればよいですか?たとえば、住所CIO 0のコンテンツが000000001000000の場合、 @記号を追加すると、 CIO 0は000000001000000に変更されますか?上記の指示で正確に何が動いていますか?
plc - PLCの微分命令とは?
私はオムロン CP1L PLC を使用しており、CX プログラマーでプログラミングしています。ドキュメントから、 「Differential Instructions」が正確に何であるかを理解するのに苦労しています:
微分命令では、実行条件が成立した場合にのみ命令の実行結果が条件フラグに反映され、次のサイクルでは (微分命令の実行結果ではなく) 前のラングの結果が条件フラグに反映されます。したがって、実行結果が使用される微分命令の場合、次のサイクルで条件フラグが何をするかを認識しておく必要があります。
私の理解では、命令は条件が満たされたときに常に実行されます。もちろん、前のラングの命令からオンまたはオフの状態を取得する条件フラグが存在する場合、次のラングの命令が実行されます。そのため、ドキュメントの説明のポイントを完全に把握していません。そして、2つの間に違いはありません:
(A) 微分を使用しない場合
(B) 微分の使用