三菱Qシーケンサ BCD BIN変換とは?
- 三菱のQシリーズシーケンサのプログラムについて説明します。
- D0~におかしな値がノイズとして入ってしまった場合にD101にデータが書き込まれることはありますか?
- D101にデータが書き込まれる可能性や16bitをオーバーしてダブルワードとして書き込まれる状況について教えてください。
- ベストアンサー
三菱Qシーケンサ BCD BIN変換について
いつもお世話になります。 三菱のQシリーズシーケンサのプログラムについてご教示願います。 例えば [DABCD D0 D10] [BIN D10 D100] [D* D100 k10 D200] [MOV D200 D1000] というプログラムがあったとします。動作は全てSM400でD0~には常にアスキーデータが毎スキャンごとに入って来るものとします。D1000の16bitデータをそのままシリアルコミュニケーションユニットからRS-422でデジタル記録計に送り、十進表示している物とします。 客先で実際に上記の様なプログラムの機器があり、記録計の表示値が正しくないという修理がありました。 結果的にはD101の中の不必要なビットが立っていたために計算結果がおかしくなってしまいD1000が変な数値を送っておりました。 プログラム全体の中ではほかにD101は使用されておらず、0に上書きされる事もなくラッチ領域になっていたためそのような現象が起きたのではないかという結論になりました。 お客さんが言われるには工場の絶縁抵抗測定があった際にブレーカを切り忘れられていたらしく、どうもそれからおかしい様な話でした。 そこで質問なのですが、例えばD0~におかしな値がノイズとして入ってしまった場合にD101にデータが書き込まれてしまうという事はありえるのでしょうか?[BIN D10 D100]のところで、16bitをオーバーしてダブルワードとして書き込まれるという状況は起きることはありうるのでしょうか? 私は駆け出しの盤屋さんで現在修行中の身ですので、初心者にもわかりやすい説明をよろしくお願い致します。
- sabbath666
- お礼率78% (82/105)
- その他(プログラミング・開発)
- 回答数2
- ありがとう数1
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
回答(1)です >絶縁抵抗測定のノイズによってPLCが演算を誤ったという事なのでしょうか? 例えばPLCプログラムは↓とする SM400 ---||-----------------------------(C0 K100) --------------------------------[END] 本来はカウンタC0は永久にゼロのままのハズです ノイズシミュレータ http://www.noiseken.co.jp/modules/products/index.php?content_id=40 このような装置を使って、1秒間に一発のペースで24時間連続でノイズを発生させたとする 1カ月もするとカウンタ値がゼロではなかったりする 必ずしもカウンタ値が変化するとは限らないし 必ずしもカウンタ値が変化しないとも限らない ノイズの問題は再現が困難 再現が困難だから「ノイズに影響されたと推定される」と報告書に記載してオシマイ 更に困難なのが その証明に要する経費を稟議に通すのが最大の問題! http://catalog.orixrentec.jp/measuring_instrument_rental/detail.html?id=28013700&category=135&search=
その他の回答 (1)
- lumiheart
- ベストアンサー率48% (1102/2295)
>プログラム全体の中ではほかにD101は使用されておらず、0に上書きされる事もなくラッチ領域になっていたためそのような現象が起きたのではないかという結論になりました。 概ねその認識でOKでしょう Qシリーズになってからその手のトラブルはほぼ無くなりましたが いにしえのK、Aシリーズでは日常茶飯事的にありました なので [BIN D10 D100] [MOV K0 D101] <D101を確実にゼロクリアする [D* D100 k10 D200] と、言うようにプログラムしました 今でも、古い人達はそのようにしてるのが多い 若い方達は「エッ!そんな必要あるんですかぁ?」 特に、24時間稼働のプラントとかでは 機械が故障するのはいつも決まって土日夜間 平日日中には故障してくれない お盆や正月休みに呼び出されない為の「保険」でもある
補足
回答ありがとうございます。 勉強になりました。 マニュアルを見るとBIN命令の場合1ワードに変換されるとありますが、絶縁抵抗測定のノイズによってPLCが演算を誤ったという事なのでしょうか? もしくは絶縁抵抗測定によって意図しないビットが立ってしまうと言うような事が起こる可能性があるのでしょうか?
関連するQ&A
- 三菱シーケンサのデバイスについて教えて下さい。
三菱シーケンサのデバイスについて教えて下さい。 三菱シーケンサ(PCタイプ:Q06(H))のデバイスで内部リレー(M)について教えて下さい。 シーケンサの電源断時に内部リレー(M)の値は保持されるでしょうか? マニュアルを見ると以下の様に書かれています。 ======= マニュアル内容 ======= (a) 内部リレーは,QCPU内部で使用するラッチ(停電保持)のできない補助リレーです。 下記操作を行うと内部リレーは,すべてOFFします。 ・電源OFFの状態から電源を投入したとき ・QCPUをリセットしたとき ・QCPUをラッチクリアしたとき ============================= 上記内容から、電源断時には内部リレー(M)の値はクリア(OFF)されそうですが、CPUユニットに電池を実装していたら、クリアされず保持されるものでしょうか? デバイスにはラッチリレー(L)やデータレジス(D)、リンクリレー(B)など、色々ありますが、ラッチ(停電保持)対象でないデバイスは、電池を実装してもデータは保持されないものなのでしょうか。 ご存知の方、教えて下さい。宜しくお願い致します。
- ベストアンサー
- その他([技術者向] コンピューター)
- シーケンサプログラムについて、教えてください。
今シーケンサを勉強中、わからないところもいっぱいあります、下記の画像のプログラムの意味を教えてください。 下記のラダ―図の意味を教えてください。 なんで上はBIN命令、下はMOV命令なのでしょうか。 それに、[= K1 D500]-[= K1 D500]-[= K1 D500]-[= K4 D500]----------(M401) どういう意味なのでしょうか。K1とK4とどちが使うかどうやって決めますか。 宜しくお願い致します。
- ベストアンサー
- 科学
- 2進数からアスキーコードへの変換についって
趣味で電子工作を行っているものです。 picマイコンを使用して、A/D変換の結果10bitのデータを得ました。 8ビットのマイコンなので2つのレジスタに分かれてデータが格納されています。(上位2ビットと下位8ビット) この2進数のデータを10進数に変換し、一桁ごとにアスキーコードにして、シリアル通信を用いてPCに送りたいと思っています。 ここで、10bitのデータの2進数から10進数への変換。 10進数のデータを一桁ずつアスキーコードへ変換。 の2つのやり方がわかりません。 2進数のデータのままPCに送り、PCのソフト側で変換するほうが簡単なのですが、今回はPIC側で変換し、アスキーコードで送る必要があります。 プログラムに使用する言語はアセンブリです。 どなたか分かる方がいましたら教えてください。
- ベストアンサー
- その他(趣味・娯楽・エンターテイメント)
- 三菱製シリアルコミュニケーションユニットとOMR…
三菱製シリアルコミュニケーションユニットとOMRON製IDコントローラV600-CA5D02の通信方法について タイトルの通り、通信がうまくいきません。 V600-CA5D02のマニュアルによると、テストコマンドを送信すると、IDコントローラからそのままレスポンスが帰ってくるはずですが、エラーが出ます。 スペックは以下の通り CPU: Q06HCPU(三菱Qシリーズ) シリアルコミュニケーションユニット:QJ71C24N 通信速度: 9600bps データ長: 7bit パリティ: なし ストップBit: 1bit 通信プロトコル: 無手順プロトコル プログラム:↓ 送信指令 ├─┤├─┬──($MOV "TSOMRON*CR" D10) 【TS:テストコマンド *CR:ターミネータ】 │ ├──(MOV H0A0D D20) │ ├──(MOV K1 D0) CH番号指定 │ ├──(MOV K0 D1) 送信結果0クリア │ ├──(MOV K20 D2) 送信データ数指定 │ ├──(G.OUTPUT U0 D0 D10 M0) 送信データ数指定 受信指令 ├─┤├─┬──(MOVP K1 D50) │ ├──(FMOV K0 D51 K2) │ ├──(MOVP K20 D53) │ ├──(G.INPUT U0 D50 D60 M10) 通信結果 レスポンス(TS14*)が帰ってきます。 情報がアバウトですみません。 原因が分かってる方はぜひ教えていただけませんか。 何卒宜しくお願いします。
- 締切済み
- 電気設計
- ラダー回路 文字列データのCSVへの書き込み
データレジスタD0以降に格納されたアスキーデータ"00001"をCSVファイルに書き込みたいのですが、三菱Qシリーズシーケンサだと文字列のCSV出力ができません。 仕方なくアスキーからBIN形式にしてからCSV書込みをしてみようと試みたのですが、正しい値に変換できません。(添付図参照) データを "00001" としてCSVファイルに書き込むにはどうすればよいのでしょうか?
- 締切済み
- その他(開発・設計)
- bin(バイナリ)ファイルがどうしても開けません!!!
仕事上でbinファイルを含んだデータを貰いましたが土・日で相手が会社にいないのでお助けください。 相手がMACのパソコンを使っており当方はWin2000を使用しております。 ファイルを10個貰いましたがその中の丁度半分の5個がイラストレータの画像ファイル(拡張子ai)で 残り5個が拡張子binのバイナリファイルとなっています。ファイル名はai,binとも関連性がありません。 ファイルサイズを見ても拡張子aiの方が拡張子binよりも全てサイズが大きいです。 過去の質問をもとに ・Aladdin Expander(StuffIt Expander) にbinファイルをD&Dしてみましたが 「このアーカイブかエンコードファイルから読み込まれたデータの形式はサポートしていません。」 とエラー表示されてしまいます。 ・また極窓にbinファイルの判別をかけても?マークが出て変換が出来ません。 ・またMac-bin (Macバイナリ除去) というソフトでbinファイルをMacバイナリ除去してから Aladdin Expander(StuffIt Expander) にbinファイルをD&Dしてみましたが開けませんでした。 ・binファイルビューアーSusie Plug-inも使ってみましたが使い方が間違っているせいか Noticeが出て開けませんでした。 このようなbinファイルは画像データとして開くことはできるのでしょうか? それとも5個のaiファイルに付属として付いてきてしまうおまけみたいなものなので 開く必要のないデータなのでしょうか? 相手には必要なデータを何枚送ったのか聞いていないので5枚画像を送ったのならば5枚のaiは開けたので それで良いのですが10枚送ったとなると問題なので心配になりました。 また当方のパソコンでは「MAC OPENER 2000」というソフトを入れており今まではMACのデータを 貰っても何の問題も無く読み込めていました。 ご教授お願いします。
- ベストアンサー
- その他(ソフトウェア)
- 三菱シーケンサの定時運転のプログラム
GX WORKS2で、FX1N-60MRのプログラムを作成、稼働中です。 とある内部リレーを介して、ある機能を、24時間制で、08:00から20:00のみ 動かし(有効にし)、20:00~08:00は停止させたいと考えました。 MOV命令で、定数K08とK20を、所定の内部リレーに書き、帯域比較命令ZCPで、 比較することで実現できると考えました。 当方、ラダープログラムの読み書きは、一通りできるレベルで、応用命令の使 い方などは良く解りません。また、GX WORKS2も今回初めて使い、何とかラダ ーをコンパイルできるぎりぎりの理解です。 マニュアルは、1999年12月のJY992D59101C、「基本命令,ステップラダー命 令,応用命令解説書」のP143を参照しています。 1)このような考え方で、上記の機能を実現可能ですか? 2)応用命令をsfcやステップラダーを用いずに、使用可能ですか? 3)GX WORKS2を使用し、リスト入力で上記を記述することは出来ませんか? 4)MOV命令の使い方が良く解りません。 5)ZCP命令の使い方も良く解りません。 6)結果を返すリレーの指定も良く解りません。 7)リアルタイムクロックの時分秒のうち、時だけを使用することは出来ます か? 8)応用命令を平易に解説したマニュアルはありますか? 以上、スキル以上のことを始めてしまった感じですが、宜しくご教示くださ い。
- 締切済み
- FA・自動化
- バッチファイルプログラム(拡張子)
あるデータをバイナリに変換するhoge.exeがあります。 これをドラッグ&ドロップで一括処理したいと考えており、下記のようなバッチファイルを作成しました。 %~d1 cd %~dp1 for %%q in (%*) do a.exe %%q > "%%q.bin" このプログラムだと、 a.movというファイルをD&Dするとa.mov.binというファイル出力となってしまいます。 a.binというファイルを出力させるにはどのように 変更すれば良いでしょうか? なお、複数ファイルの処理に対応したいので 最後を%~n1.binにするとうまいきません。
- 締切済み
- C・C++・C#
- 三菱のQシーケンサー
三菱のQシーケンサーを使用しラダーを組んでいるのですが、 指数演算のやり方を教えて下さい。 例えば、10の5乗の場合どのような命令を使って計算しますか?
- 締切済み
- SE・インフラ・Webエンジニア
- RS-232C通信(その2) 三菱A1SJ71Q…
RS-232C通信(その2) 三菱A1SJ71QC24-R2 RS-232C通信(その1)のつづきの質問になりますが、ご教授ください。 困っているのは、A1SJ71QC24-R2の先頭アドレスの指定方法です。 ラダーにて、 ├─┤├──(TOP U0A H145 H2A0D) としたとき、”エラーコード2110:指定の入出力番号がインテリジェントユニット/特殊機能ユニットでない”が発生します。 構成は、 CPUはQ2ASの5スロット スロット1:A1SX42 入力64点 スロット2:A1SY42 出力64点 スロット3:A1SJ61QBT11 CCリンクユニット 32点? スロット4:AJ71QC24N-R2 シリアルコミュニケーションユニット 32点? スロット5:空き です。 GPPの自動検出などからも入出力先頭番地がXA0のようですが、正しいでしょうか? また、ラダーにて”U0A”と表記なのか”H0A”なのかもご指導ください。 アドバイス及び答えを宜しくお願いいたします。 みなさまのおかげで無事解決しました。 まず、技術の森及び関係者の方々にお礼申し上げます。 つぎに概要を説明します。 問題を整理しますと、 ?ユニットの先頭入出力指定がわからない。 ?送信データのターミネータ付加方法がわからない。 でした。(配線は省略させていただきます。) ?ですが、ラダー ├─┤├──(TOP U0A H145 H2A0D K1) は、受信コードであり、送信にたいしては不要でした。 こちらは受信のターミネータで修正しました。 ユニット先頭入出力については、回答(1)さまのご指摘のとおりU0Aでした。 ?ですが、送信データにターミネータを付加する必要があるため、データ末尾の次アドレスに付加しました。 また、G.OUTPUTにて S1+0:送信チャンネル S1+1:送信結果(0以外エラー) S1+2:送信データ数 となっておりますので、エラーリセットを追記しました。 ラダー概要は下記のようです。 転送命令 ├─┤├─┬──(MOV K2 D100) A1SJ71のCH2を指定しD100へ │ ├──(MOV K8 D101) データ長7ワード+ターミネータ1ワード │ ├──($MOV "WTA10010070119" D104) 転送データ │ ├──(MOV H02A D111) ”*CR”を付加 │ ├──(MOV K0 D101) エラーリセット │ └──(SET M○○) データ転送セット │ 送信命令 ├─┤├────(G.OUTPUT UA D100 D104 M○□) 以上で解決しました。 マニュアルをよく読み、よく考えるとわからないでもないことでした。 しかしながらどれがどうなのか理解できず藪の中に入っていったことであり、未熟でありました。 ご意見あれば追記ください。 1週間程度しましたら回答締め切りとするつもりです。 以上、ご協力ありがとうございました。
- 締切済み
- その他(FA・自動化)
お礼
回答ありがとうございます。 ノイズシュミレータと言うものは初めて知りました。やはり実際にノイズで誤動作するというのは有り得るのですね。 非常に勉強になりました。今後の仕事に生かしていきます。