初めての店舗開業を成功させよう>>

M社製PLC(Qタイプ-Qモード)で、伝送ユニットを使用しマルチメーターのデータを読み取りを行っています。
しかし、稀にその伝送ユニットのエラーランプが点灯し伝送系が停止してしまいデーターが更新されなくなってしまいます。
伝送ユニットのエラー原因を探るとエラーコードより、パリティエラー発生という事が判明しました。

そこで、ご質問ですが、
(1)そもそもパリティエラーとは何なのでしょうか?

(2)また、そのエラーの発生原因の主な理由は何なのでしょうか?

尚、伝送系が停止する直接的な理由はバッファフルというエラーが原因のようですが、そのエラーの発生原因をパリティエラー発生(バッファフル発生までに数回パリティエラー発生している)によるものと、現状考えております。

もし、ご質問内容に不明な点がありましたら捕捉要求お願いします。
以上、宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

No.1のM/MからPLCへデータを送信。



PLCからNo.2のM/Mにデータ要求する。
No.2のM/MからPLCへデータを送信。
 ・
 ・
 ・
PLCからNo.7のM/Mにデータ要求する。
No.7のM/MからPLCへデータを送信。
最初に戻る

複数のM/Mから同時送信するということはないでしょう
か。No.4にデータ要求したのに、他のM/Mもデータを送
信したら、No.4がおかしいように見えますね。この場合、
PLCの送信データが化けていることも考えられます。
(複数のM/Mが、自分へのデータ要求だと思ってしまっ
ている。)

1日1回程度の誤動作ではなかなかその瞬間を見ている
のは難しいですね。ノイズ対策してもその効果がなかな
か確認できません。

対症療法ですけど、PLC側のソフトで逃げられないでしょ
うか。パリティエラーが出たら、しばらく(1秒ぐらい?)
待って、いったん受信バッファをクリア。もう一度データ
要求する、というような。
    • good
    • 0
この回答へのお礼

nano_cat様、いつもご回答頂きありがとうございます。
ご教示頂いた内容ですが、発生しだした時にレコーダーを以下の条件で仕掛けました。
(1)1chに伝送ライン入力
(2)2chにPLC伝送ユニットエラーでYリレー(PLC接点出力)ON
(3)”(2)”でトリガかけ、トリガかかる1.5s前より伝送ライン波形を印刷
その結果、7回路中6回路は正常(PLC呼掛け→M/Mデータ伝送)に動作し、問題の回路はPLCが呼びかけしている物の返答無しでした。尚、5s返答無いと次のM/Mに
滑っていきます。
また、ノイズのようなものは見られませんでした。しかし、印刷されたのは1.5s前までであり、実際にはもっと以前に停止されたものと思われその停止したところは見えてません・・・
この現象で考えられるのが、
(1)M/Mの異常
(2)呼掛けのアドレスが間違っている
 (正常の時もありますので、何らかのタイミングや 
PLCソフト演算の間違い?)
かと、今の所思っています。
現状の仮処置として、4番目のM/Mに呼掛けしないようソフトで処置しています。(処置後4日経ちますが異常でず)

対処療法のソフトで逃げる・・・のは、私も同感です!しかしながら、一度パリティエラーがでると、伝送ユニットのエラーランプが点灯してしまいますが、これは内外部からリセットできず、リセットするにはCPUごとリセットするしかないようです・・・(ToT)

これまで、nano_cat様には大変貴重なご回答を多々頂き為になりました。今後ご教示頂いた事を活用し異常の完全復旧に取り組みます。
ありがとう御座いましたm(_ _)m

お礼日時:2005/04/26 12:48

(2)につきましては、私の書き方が悪かったです。

kohremさんのお考えの通り、受信側ではどのビットがおかしかったのか知る術はありません。

電気的にはRS-485とのこと、通信速度も9600bpsと速くないので40mぐらいの長さでしたらそう大きな問題はなさそうです。

数珠繋ぎになっている(PLC 1台に7個のM/Mぶら下がっているのですね)のに、4台めだけパリティエラーになるというのはフに落ちません。ライン上にノイズが乗っているのなら、4台めだけ、と限らないと思います。4台めが送信する際に同期して、何か機械が動き出すといったことはないのでしょうか。

もしかしたら4台めのM/Mが故障(気味)ということはないでしょうか。他のM/Mと交換してみるとか。
    • good
    • 1
この回答へのお礼

nano_cat様ご回答ありがとうございます。

確かに現状から考えるとM/Mの異常が一番可能性が高いものと思われます。しかしながら、私にはそれだけとはどうしても思えないのです。
その理由は、
(1)この現象は前にも出てまして、出方も今回と同じようで時には頻発(1回/日)で時には沈黙でと・・・ちなみに、その時は3番目のM/Mでした。結局確かな原因がわからず結局重要度の低い回路であったことからM/Mを取り外した。結果、異常は出なくなった・・・かに思えましたが数ヵ月後また異常が頻発しだした(4番目の現在)ちなみに、1度M/Mを交換したのですが、その時は効果無しでした(ToT)
(2)異常は常時ではなく何らかのタイミング?で発生している(故障気味かもしれませんが)PLCエラーリセットで復帰し正常に伝送できる。
その他にもあるんですが、とりあえず、言えることは現状、前のことを考えると何か単純じゃないような・・・単純のようなです・・・

今度5/4停電日ですので、そこで交換はして見ます!!

お礼日時:2005/04/25 23:14

PLCの知識はほとんどありません。



(1)パリティエラーとは、データ伝送する際に、そのデータがうまく伝送されたかどうか調べるために付加するものです。例えば、8ビット(1または0)のデータがあるとして、8ビットのデータの中で1であるビットの数が奇数ならば1、偶数ならば0を伝送します。つまり全部で9ビット伝送することになり、1の数は常に偶数になります。

伝送しているうちにノイズなどで、間違ったデータが送られた場合に発見し易くなります。(受信側で1の数を調べ、偶数でなければエラーだとわかります。)

この方法が、2ビットがおかしくなってもエラーだと検出できません。(2ビットがおかしくなっても、1の数は偶数ですので。)

以上は偶数パリティの話です。逆に奇数パリティにする場合もあります。

(2)データの伝送がおかしい、ということです。0であるビットが1に、1であるビットが0に変化してしまっているということです。信号系にノイズが混入しているか、電気系では接触不良、ケーブルの断線しかけ、なども考えられます。

バッファフルで停止する前にパリティエラーが数回出ているのですから、まずはパリティエラーを無くすべきですね。

伝送はシリアルですか?(RS-232C・EIA-232)
シリアルでパリティエラーが起きるということは、スタートビットの誤発生もあり得るわけで、想定外の早い周期でデータを受信しているのかもしれません。→それでバッファフルになってしまう。

ケーブルの長さはどのぐらいですか。
通信速度はどのぐらいですか。
コネクタのところにフェライトコアによるノイズフィルタを入れることも可能です。ノイズが多い環境ならばRS-422による平衡伝送が良いかと思います。

この回答への補足

伝送ラインの用途は、特高変電所の高圧ファーダーのM/M(電流&力率)データーで、ひとつの伝送ラインに7個のM/Mがぶら下がっています。
ケーブル長は、一番遠いM/M部で約40m位です。
通信速度は、9600bpsです。
伝送は、RS-485です。
伝送ラインをモニタしてみた所、PLCの呼びかけ→M/Mからのデータ送信を7個分繰り返しており、各周期の間は20msあいていました。
ただ、7個目から1個目に帰る時は5msしかなかったのですが・・・
ちなみに、異常を発するM/Mは4番目にあたります。
接続方法は、2芯シールドで各M/Mを数珠つなぎにしています。
一応、現状ではノイズ、細かく言えば、静電誘導ではなく電磁誘導によるものと考えていますが、異常発生時は特に電流を多く使用している負荷もなく、高圧側電路とは完全に離隔していますので、何とも言えません・・・
ただ、気になるところは同バンクに所内電源変圧器があり、その負荷に変電所制御用直流電源(バッテリー)があることなんですが・・・まだ、その気にしている事をロジックに説明できないので何もしようがないのですが(^_^;

補足日時:2005/04/24 12:37
    • good
    • 0
この回答へのお礼

nano_cat様、ご回答下さりありがとうございます。

(1)はよく理解できました。ありがとうございます。
これは、1が0又は0が1にノイズ等の要因で化けてしまった時に本来1の個数が偶数であるはずが奇数個になり、それを検出→パリティエラーとなるが、2個化けてしまった場合1の数が必然に偶数になってしまうので、検出不可と言う事ですね。

次に(2)の事についてですが、すみません(ToT)よくわかりません。大変申し訳ありませんが、再度回答お願いできますでしょうか?

”(2)データの伝送がおかしい、ということです。0であるビットが1に、1であるビットが0に変化してしまっているということです。”

この場合、0であるビットが1に・・・で、0であるとわかっているのはなぜでしょうか?
と、言うのは受け側はデーターを受け取るだけなので、このデータは0であるはずと知るよしもないかなぁと思いまして・・・

お礼日時:2005/04/24 12:56

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QRS232C通信(PC⇔PLC)

PCとPLCでシリアル通信を行っています。PLCからPCへステータス受信要求し、PCから正常アンサーがあればPLCからPCへ処理開始指令コマンドが出力されるというプロトコルです。実際には、PC側ステータス正常の場合、PLCへの正常アンサーを出力するところまでは行くのですが、その直後にPLCから送信されているはずの処理開始指令コマンドを受信することができません。一連のコマンド送信・受信の間隔が狭すぎるのかと思い、PLC側で処理開始指令コマンド送信前に10msecのウェイトを設けるとPC側で受信することができました。(PLC側の送信が悪いのか、PC側の受信に問題があるのか不明ですが、、、)
シリアル通信では、上記のような問題が発生しないように送受信の間隔等なんらかの規約が定められているのでしょうか??ウェイトを設けることなく通信を行いたいのですが、考えられる対処法を教えていただけませんでしょうか。よろしくお願い致します。
なお、通信機器の仕様は以下の通りです。
PLC:三菱シリアルコミニケーションユニット QJ71C24N-R2
PC:WinXpSP2、COMポート、VisualBASIC6.0のCommイベントによりデータ受信(10msecウェイトなしでは、処理開始指令コマンド送信時にCommイベントが発生しませんでした。)
※アスキー文字、PLC・PCともに送信終了コード(CR+LF)でバッファデータ読込み

PCとPLCでシリアル通信を行っています。PLCからPCへステータス受信要求し、PCから正常アンサーがあればPLCからPCへ処理開始指令コマンドが出力されるというプロトコルです。実際には、PC側ステータス正常の場合、PLCへの正常アンサーを出力するところまでは行くのですが、その直後にPLCから送信されているはずの処理開始指令コマンドを受信することができません。一連のコマンド送信・受信の間隔が狭すぎるのかと思い、PLC側で処理開始指令コマンド送信前に10msecのウェイトを設けるとPC側で受信することができま...続きを読む

Aベストアンサー

>シリアル通信では、上記のような問題が発生しないように・・・
そんなことはありません。
まあ、ウエイトもプロトコルと言えばプロトコルでしょうが、
そういう問題ではないと思います。

COMポートのオープン処理はこんな感じ
strBps = "9600,N,8,1" '9600bps、パリティなし、8ビット、ストップ1
MSComm1.CommPort = p_PortNo 'ポート番号の指定
MSComm1.Settings = strBps 'オープンパラメータ
MSComm1.InputLen = 0 'バッファ全体を読み取るようにする
MSComm1.InputMode = comInputModeBinary
MSComm1.PortOpen = True 'ポートをオープン
MSComm1.NullDiscard = False
MSComm1.Handshaking = comNone
MSComm1.RTSEnable = True
MSComm1.RThreshold = 1

COMの割り込みイベントはこんな感じ

Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
varDatas = MSComm1.Input
End Select
End Sub

>シリアル通信では、上記のような問題が発生しないように・・・
そんなことはありません。
まあ、ウエイトもプロトコルと言えばプロトコルでしょうが、
そういう問題ではないと思います。

COMポートのオープン処理はこんな感じ
strBps = "9600,N,8,1" '9600bps、パリティなし、8ビット、ストップ1
MSComm1.CommPort = p_PortNo 'ポート番号の指定
MSComm1.Settings = strBps 'オープンパラメータ
MSComm1.InputLen = 0 'バッファ全体を読み...続きを読む

Q遮断器と電磁接触器(VCB,VCS,VMC)

VCBとVCSの違い、用途・使い分けについて教えてください。真空遮断器、真空電磁接触器のそれぞれの特長、メリット・デメリット等教えて頂ければ幸いです。よろしくお願い致します。

Aベストアンサー

遮断器は短絡事故電流を遮断できる能力があります。
たとえば、100kVAのトランスの2次側6kVに設ける遮断器に流れる定格電流は約9Aですが、遮断器の出側(負荷側)で短絡した時には300Aくらいまで流れます。
また短絡電流には直流成分が含まれますからアークを消す能力(消弧能力)が求められます。

真空遮断器は接触子を急速に離し、真空中でのアーク消滅を行います。
SF6ガス遮断器は消弧能力の高いガスをアークに吹き付けて消滅を図ります。

真空接触器はモーターの運転などの突入電流(定格電流の6~8倍)の電流での遮断能力を持ちますが、短絡電流を遮断する能力はありません。

短絡電流は電力用ヒューズを用いる場合も多く、接触器(コンタクタ)と組み合わせたものをコンビネーションスタータといいます。この場合短絡電流はヒューズで遮断し、フューズで遮断されるまでの数サイクル(数10ミリセカンド)の短絡電流にだけ耐えるような接触器の設計を行います。

Q漏電遮断機とZCTの違いについて教えて下さい。

電気見習いです。
宜しくお願いします

Aベストアンサー

ZCTはCT(変流器)の一種です、零相変流器(Zero-phase Current Transformer)この頭文字でZCTです。
三相に対して一括して取り付け、どこか一線で地絡(漏電)が起きると三相のバランスが崩れ、その差が二次側電流として出てきます。
その電流で二次側に接続された地絡継電器が動作し遮断器をトリップします。

低圧の場合は機器を小さくできるため、配線用遮断器にZCTと継電器を組み込んで一体としたのが漏電遮断器です。
良い説明が無かったのですが、上から5番の「構造と動作」を開いてくださいPDFファイルです。
http://www.toshiba-tips.co.jp/common/html/tsel/shadan/shadandocu.htm
わかりづらいですが配線用遮断器に漏電検出装置を付けた物が漏電遮断器です。

高圧の場合は機器が大きくなるのでZCT・地絡継電器・遮断器の組み合わせで構成します。
低圧の場合でもZCT・地絡継電器(漏電リレー)の組み合わせで使うこともあります。

ここは三菱さんですが、クリックしていけば製品説明が出てきますので、とりあえず「どんな物?」というのを掴むには便利かも。
http://www.mitsubishielectric.co.jp/haisei/01sei/01sei_syou/index_sei_syou_kessen.htm

CT・ZCT・VT・EVTは総称して「計器用変成器」と呼びます。

ZCTはCT(変流器)の一種です、零相変流器(Zero-phase Current Transformer)この頭文字でZCTです。
三相に対して一括して取り付け、どこか一線で地絡(漏電)が起きると三相のバランスが崩れ、その差が二次側電流として出てきます。
その電流で二次側に接続された地絡継電器が動作し遮断器をトリップします。

低圧の場合は機器を小さくできるため、配線用遮断器にZCTと継電器を組み込んで一体としたのが漏電遮断器です。
良い説明が無かったのですが、上から5番の「構造と動作」を開いてくださいPDFファ...続きを読む

QNをkgに換算するには?

ある試験片に40kgの重りをつけた時の荷重は何Nをかけてあげると、重り40kgをつけたときの荷重と同等になるのでしょうか?一応断面積は40mm^2です。
1N=9.8kgfなので、「40kg=N×0.98」でいいのでしょうか?
ただ、式の意味がイマイチ理解できないので解説付きでご回答頂けると幸いです。
どなたか、わかる方よろしくお願いします。

Aベストアンサー

こんにちは。

kgfはSI単位ではないですが、質量の数値をそのまま重さとして考えることができるのがメリットですね。


>>>
ある試験片に40kgの重りをつけた時の荷重は何Nをかけてあげると、重り40kgをつけたときの荷重と同等になるのでしょうか?

なんか、日本語が変ですね。
「ある試験片に40kgの重りをつけた時の引っ張りの力は何Nの力で引っ張るのと同じですか?」
ということですか?

・・・であるとして、回答します。

40kgのおもりなので、「おもりにかかる重力」は40kgfです。

重力は万有引力の一種ですから、おもりにも試験片にも、地球からの重力はかかります。
しかし、試験片の片方が固定されているため、見かけ、無重力で、試験片だけに40kgfの力だけがかかっているのと同じ状況になります。

試験片にかかる引っ張り力は、

40kgf = 40kg×重力加速度
 = 40kg×9.8m/s^2
 = だいたい400N

あるいは、
102グラム(0.102kg)の物体にかかる重力が1Nなので、
40kg ÷ 0.102kg/N = だいたい400N


>>>1N=9.8kgfなので、「40kg=N×0.98」でいいのでしょうか?

いえ。
1kgf = 9.8N
ですね。


>>>一応断面積は40mm^2です。

力だけでなく、引っ張り応力を求めたいのでしょうか。
そうであれば、400Nを断面積で割るだけです。
400N/40mm^2 = 10N/mm^2 = 10^7 N/m^2
1N/m^2 の応力、圧力を1Pa(パスカル)と言いますから、
10^7 Pa (1千万パスカル) ですね。

こんにちは。

kgfはSI単位ではないですが、質量の数値をそのまま重さとして考えることができるのがメリットですね。


>>>
ある試験片に40kgの重りをつけた時の荷重は何Nをかけてあげると、重り40kgをつけたときの荷重と同等になるのでしょうか?

なんか、日本語が変ですね。
「ある試験片に40kgの重りをつけた時の引っ張りの力は何Nの力で引っ張るのと同じですか?」
ということですか?

・・・であるとして、回答します。

40kgのおもりなので、「おもりにかかる重力」は40kg...続きを読む

Qモーターが焼損しているかどうか調べる方法

三相200vのモーターが焼損しているかどうかを調べるにはどうすれば最も良いでしょうか??メガテスターをつかって調べると良いようなのですがよくわかりません。匂いである程度わかりますが、もっと確信が持てる方法を知りたいと思います。どなたか詳しい方がいらっしゃったら教えてください。

Aベストアンサー

モータの主な故障原因とその確認法について私見ですが書いて見ます。
(1)ベアリング故障:小型モータであれば、軸を手で回転させて、滑らかに回るかどうかを確かめる。
(2)断線:テスターの抵抗レンジで、巻線間の抵抗値を測定する。アンバランスがあると断線の可能性あり。
(3)絶縁破壊:メガー(500V)で巻線と外枠の間の絶縁抵抗を測定する。JISC4004の基準では0.2MΩ以下が不良とされるが、これは水中ポンプなど使用環境の良くない場合であり、通常の環境なら1MΩを下回るようであれば要注意。
(4)総合:通電して無負荷で運転中の電流、振動、騒音、臭気などの異変を確かめる。

Q漏電遮断器の原理を教えて下さい

現在専門学校で電気を勉強しているものです。

漏電遮断器の原理がいまいちよく分かりません。

特に接地(アース)していないと漏電遮断器が働かないという根拠が分かりません

電気に詳しい方、教えていただけませんか?

Aベストアンサー

一般の家庭用の100vや200vの電気は電力会社から高圧(一般家庭近くでは6,600v)で送られてきて、電信柱の上のトランスで、100vや200vに落とされて家庭に配られますが、この柱上トランスの100vの片線と200vの中性線が故障のときの安全のために地中にアース線としてつながっています。電流は電子の移動なので、必ず出て行った分と同じだけ戻ってきます。もしこれが違っていたときは電流がどこかに漏れていることになるので、この差を検出して電流を遮断するのが漏電遮断器です。まず漏電の状態を考えてみますと、電気が流れている電気製品で、電線の被服が破損して電気製品のボディーに接触したとします。この時破損した側の電線がアース側なら電位が同じなので何も起きません。また反対側でも電気製品のボディーが完全にゴムか何かの絶縁体の上に乗っていれば漏れ電流が流れないので漏電遮断機は働きません、あくまで遮断器のところを通る電流の差が規定値(50mA程度)を超えた場合のみ働きますから。ここでこの電気製品のボディーを地面に接触(アース)させると電流がボディーからトランスのアース側へと流れて漏電遮断機に流れるプラスマイナスの電流値に差が出て漏電遮断機が働くことになります。つまりこの意味で、アースしていないと漏電遮断機が働かないのであって、漏電遮断機そのものをアースする必要は全くなくまたそんな端子もありません。

一般の家庭用の100vや200vの電気は電力会社から高圧(一般家庭近くでは6,600v)で送られてきて、電信柱の上のトランスで、100vや200vに落とされて家庭に配られますが、この柱上トランスの100vの片線と200vの中性線が故障のときの安全のために地中にアース線としてつながっています。電流は電子の移動なので、必ず出て行った分と同じだけ戻ってきます。もしこれが違っていたときは電流がどこかに漏れていることになるので、この差を検出して電流を遮断するのが漏電遮断器です。まず漏電の状態を考えてみますと...続きを読む

QVB.netで、シリアル通信のタイムアウト処理について

VB.netで、シリアル通信のタイムアウト処理について

http://msdn.microsoft.com/ja-jp/library/7ya7y41k.aspx
このサイトのコードを、参考にしています。
------------------------------------ここから
Dim com1 As IO.Ports.SerialPort = Nothing
Try
com1 = My.Computer.Ports.OpenSerialPort("COM1")
com1.ReadTimeout = 10000

Catch ex As TimeoutException
returnStr = "Error: Serial Port read timed out."
Finally
If com1 IsNot Nothing Then com1.Close()
End Try

------------------------------------ここまで

この方法ですと、タイムアウトが発生したらポートを閉じるようですが、これを、送信したシリアルのデータを再度、送信させたいと思います。
そして、何度かリトライを掛けた後に、やっぱり駄目だったときに
ポートを閉じたいと思います。

どんな方法がありますか?

参考になりそうなサイトなどがありましたら、教えていただけませんか。
以上、よろしくお願いします。

VB.netで、シリアル通信のタイムアウト処理について

http://msdn.microsoft.com/ja-jp/library/7ya7y41k.aspx
このサイトのコードを、参考にしています。
------------------------------------ここから
Dim com1 As IO.Ports.SerialPort = Nothing
Try
com1 = My.Computer.Ports.OpenSerialPort("COM1")
com1.ReadTimeout = 10000

Catch ex As TimeoutException
returnStr = "Error: Serial Port read timed out."
Finally
If com1 IsNot Nothing Then com1.Close()
End Try

----------------...続きを読む

Aベストアンサー

タイムアウトはWrite/Read(送受信)系メソッドで
発生します。そのメソッドをTry~Catchブロックで
ハンドリングしないと意味ないでしょ。
掲題のプログラムはポートを開いて、タイムアウトの
時間を設定しただけですから、送受信していません。


人気Q&Aランキング

おすすめ情報