この記事では「チェックサム」について、その具体例と実際にラダーでどのように起こせばいいのか・・・など、わかりやすく解説します。
目次
チェックサムとは
チェックサムとはデータ通信などを介した時に転送先でそのデータに誤りが無いかを整数値の和を以て比較し、確認する方法です。
チェック・サムをそのまま日本語に訳すと「和・確認」です。つまりデータの和を確認する意味で名づけられています。
それでは具体的にどういった物なのか?説明していきます。
例として、PLCと印字機をRS-232Cで接続します。今回はシリアル通信で文字列を送信するとします。この印字機ではチェックサムを付加することで、データの誤りをチェックしてくれる機能がついています。
今回の仕様は、PLC側で印字したい文字をASCIIにて文字を生成して、そのデータを印字機に転送することで印字機でその文字を印字できるものとします。
それぞれのASCIIデータの内容を表すための数値から上位と下位の和を求めます。
今回の場合「A」を表すのが16進数で「41(H)」、「B」を表すのが「42(H)」となります。和を求めると「83(H)」になります。
この「A」・「B」のデータと一緒に「83(H)」を印字機に転送します。
データを受け取った印字機はデータの和を求めます。誤りが無ければ、同じように「83(H)」となりPLCからのデータと同じなので、そのデータは正しいと判断します。
ノイズが乗った場合
先ほどと同様に、「A」を表すのが16進数で「41(H)」、「B」を表すのが「42(H)」となります。和を求めると「83(H)」になります。
この「A」・「B」のデータと一緒に「83(H)」を印字機に転送します。しかし転送中にノイズが乗ってしまい、あらぬビットが立ってしまいました。
印字機が受け取ったデータは「A」・「G」でした。「A」を表すのが16進数で「41(H)」、「G」を表すのが「47(H)」となります。和を求めると「88(H)」になります。
ここで、印字機はデータの比較をします。PLCから付加されていた和は「83(H)」、受け取ったデータの和は「88(H)」となり、印字機はここでデータがおかしい事に気づいてPLCに教えてあげることが出来ます。
これがチェックサムの仕組みです。
パリティチェックとの違いは?
先ほどと同じケースのノイズが乗ったと仮定します。
パリティチェックとは
データ内のビット「1」の個数が偶数か奇数なのかを別のビットで表示、
そして、データ通信などを介した時に転送先でそのデータに誤りが無いかをそのビットで確認する方式。
の事でしたね。
今回は偶数パリティの例で紹介しますが、ノイズの影響でビットが2つ入れ替わってしまいました。
こうなるとパリティチェックでは検出できません。しかし、チェックサムなら和を求めますので、その変化をとらえることが出来るわけです。
このようにパリティチェックでは簡易的な比較に使用され、チェックサムはさらに精度を上げた確認に使用されています。
パリティチェックについての詳細を説明している記事はこちらです。
-
【中級編】パリティチェックとは?具体例とシーケンス制御においての使い方について解説します
この記事では「パリティチェック」について、その具体例と実際にラダーでどのように起こせばいいのか・・・など、わかりやすく解説します。 パリティチェックとは データ内のビット「1」の個数が偶 ...
続きを見る
ラダーの作成方法
今回は三菱電機IQ-Rシリーズを使った場合の例として紹介します。
まずはGX-Works3を使って文字列を書いていきます。
D0にASCIIにて文字列”AB”を、D1に文字列”CD”を書きます。今回は$MOV命令を使用しています。
それぞれ8bit単位で、このように書き込まれます。
チェックサムを求める場合はCCD命令(チェックコード命令)を使います。
D0とD1のチェックサムを求めたい場合は、このようにラダーを書きます。
このラダーを走らせた際のデバイス一括モニタはこのようになります。
D5にはD0とD1のチェックサムの結果が格納されています。水平パリティがD6に格納されています。
試しで、本当に足し算した結果なのか電卓を使って計算してみます。
この通り、確かに和が「10A(H)」となっていますね。あとはこのD5のデータを対象の制御機器の仕様に沿った場所に文字列と一緒に付加して転送すればOKです。
文字列が増えても簡単に使えるので、オススメです!
まとめ
今回の記事を要約するとこんな感じです。
ポイント要約
①チェックサムとはデータ通信などを介した時に転送先でそのデータに誤りが無いかを整数値の和を以て比較し、確認する方法
②ノイズの影響で2ビット変わるとパリティチェックでは検出できないが、チェックサムでは検出可能
③文字列を主とした通信に主に使用されている
④通信する制御機器によって計算式が微妙に異なる場合があるので、使用する制御機器の仕様を確認して使用する