標準ＰＬＭＣ通信ライブラリリファレンスマニュアル

ＰＬＭ−ＣＯＭＮＴ説 明 書Ｖｅｒ１．２
2007.12.21

TB00-0813.jtd-1

−目次−
１．形式

…………………………………………………………………………………………………………………… 3

２．製品構成３．概要……………………………………………………………………………………………………………… 3…………………………………………………………………………………………………………………… 3

４．関連資料……………………………………………………………………………………………………………… 3

５．使用環境……………………………………………………………………………………………………………… 3

６．インストール……………………………………………………………………………………………………… 3

７．ライブラリ使用上の注意事項

８．関数使用例………………………………………………………………………………… 3………………………………………………………………………………………………………… 4

８−１ ＭＳ−ＶＣ以外のＣ言語処理系での利用方法

９．関数仕様……………………………………………………… 4……………………………………………………………………………………………………………… 6

９−１ ．通信………………………………………………………………………………………………………… 6

Ｉ ｎ ｉ ｔ Ｃ ｏ ｍ ｍ Ｐ ｒ ｏ ｃ ………………………………………………………………………………………… 6
Ｑ ｕ ｉ ｔ Ｃ ｏ ｍ ｍ Ｐ ｒ ｏ ｃ ………………………………………………………………………………………… 7
ＳｅｎｄＤａｔａ…………………………………………………………………………………………………… 8
ＲｅｃｅｉｖｅＤａｔａ…………………………………………………………………………………………… 9
ＳｅｎｄＣｏｍｍａｎｄ………………………………………………………………………………………… 10
ＤａｔＥｎｄｉａｎＣｈａｎｇｅ……………………………………………………………………………… 11
９−２ ．タイマー………………………………………………………………………………………………… 13

ＳｅｔＴｉｍｅＯｕｔ…………………………………………………………………………………………… 13
ＣｈｅｃｋＴｉｍｅＯｕｔ……………………………………………………………………………………… 13

TB00-0813.jtd-2

１．形式
ＰＬＭＣＯＭ−ＮＴ

２．製品構成ＰＬＭＣＯＭＮＴ ．ＤＬＬ
ＰＬＭＣＯＭＮＴ ．ＬＩＢ
ＰＬＭＣＯＭＮＴ ．Ｈ
ＰＬＭＤＡＴＡ．Ｈ
ＳＹＮＣＤＥＦ．Ｈ
ＰＬＭＣＯＭＡＰＩ．ＴＸＴ････････････････････････････････････････････････

ダイナミックリンクライブラリーファイル
インポートライブラリーファイル
イ ン ク ル ー ド フ ァ イ ル (関 数 定 義 )イ ン ク ル ー ド フ ァ イ ル (構 造 体 定 義 )イ ン ク ル ー ド フ ァ イ ル (マ ク ロ 定 義 )ビ ジ ュ ア ル ベ ー シ ッ ク 用 デ ー タ 型 ･関 数 定 義

３．概要
本ライブラリ（標準ＰＬＭＣシリーズ対応通信ライブラリ）は、パソコンとＰＬＭＣコントローラ
間で、ＲＳ−２３２Ｃを利用して通信を行うための処理を、ライブラリ化したものです。
本ライブラリの機能は、Ｃ言語の関数形式で呼び出して、利用できます。
本ライブラリを利用して以下のような処理が行えます。
・データ送信・データ受信・動作指示
各データの詳細は送受信データ説明書を参照下さい。

４．関連資料「ＰＬＭＣ４０ユーザーズマニュアル」「標準ＰＬＭＣ対応 セッティングＰＣマニュアル」「標準ＰＬＭＣ対応 ＲＯＭＳＷ設定ソフトマニュアル」「標準ＰＬＭＣ対応 サンプルラダープログラム説明書」※「標準ＰＬＭＣ対応 通信ライブラリリファレンスマニュアル」「標準ＰＬＭＣ対応 送受信データ説明書」「標準ＰＬＭＣ対応 Ｔコード変換ライブラリリファレンスマニュアル」「標準ＰＬＭＣ対応 Ｇコード変換ライブラリリファレンスマニュアル」（ＴＢ００−０８１０）（ＴＢ００−０８１２）（ＴＢ００−０８１１）（ＴＢ００−０８１７）（ＴＢ００−０８１３）（ＴＢ００−０８１４）（ＴＢ００−０８１５）（ＴＢ００−０８１６）※ 本書
５．使用環境本ライブラリが対応するパソコン及び、Ｃコンパイラは以下の通りです。
対応パソコン
対応Ｃコンパイラ

・・・・・・Windows98/NT/2000が 動 作 す る ｘ ８ ６ Ｃ Ｐ Ｕ 搭 載 機
Ｖｉｓｕａｌ Ｃ＋＋ Ｖｅｒ６．０以降

６．インストールＤＬＬファイルをプログラム検索パスの通っているディレクトリ（フォルダ）に格納して下さい。

７．ライブラリ使用上の注意事項
ＰＬＭシリーズ用通信ライブラリーを使用して、アプリケーションを作成するときは、
以下の事を注意して下さい。
・ プログラムデータの作成には、弊社プログラム処理ライブラリが必要です。

TB00-0813.jtd-3

８．関数使用例
本ライブラリの使用法は、以下の２通りがあります。
・インポートライブラリを使用して関数をインポートする。
ライブラリーに付属のインポートライブラリをアプリケーションの作成時にリンクします。
この方法は、使用言語がＭＳ−ＶＣ＋＋ Ｖｅｒ６．０の時のみ有効です。
・ＤＬＬロード関数を使用して関数をインポートする。
ＤＬＬロード関数を使用してＤＬＬをメモリにロードし、関数アドレスを取得して関数を呼び出します。
この方法は、ウィンドウズ上で動作する言語処理系（３２ビット版）全てで有効です。
詳細は次項を参照して下さい。

８−１ ＭＳ−ＶＣ以外のＣ言語処理系での利用方法
ＭＳ−ＶＣ以外のＣ言語処理系でＤＬＬを使用する場合は、以下の手順で行います。
１．ＤＬＬのロード
２．ＤＬＬ内の任意の関数のアドレス取得：： ＤＬＬ内の関数の利用：
３．ＤＬＬのアンロード※ 関 数 ア ド レ ス 取 得 時 に 指 定 す る 関 数 名 は 、 本 説 明 書 (ヘ ッ ダ ー フ ァ イ ル )の 関 数 名 と異なります。
ア ド レ ス 取 得 時 の 関 数 名 の フ ォ ー マ ッ ト は 、 ヘ ッ ダ ー フ ァ イ ル の 関 数 名 の 前 に "̲"（アンダーバー）を付け、関数名の後に＠、その後に引数の数×４を付けます。
具体的には以下の通りとなります。
̲関 数 名 @引 数 の 数 × 4
例

InitCommProc(PSXDEF psxdef, int *phCom )の 場 合
関数名

･････

̲InitCommProc@8

こ れ ら の 定 義 が Plmcomnt.h内 に あ る の で 、 独 自 の 処 理 を 作 成 す る 場 合 は 参 考 に し て 下 さ い 。

TB00-0813.jtd-4

関 数 ア ド レ ス 取 得 時 に 指 定 す る 関 数 名 ／ 関 数 ポ イ ン タ の デ ー タ 型 は ､Plmcomnt.h内 で 定 義 し て い ま す 。
Plmcomnt.h を イ ン ク ル ー ド す る 前 に LOADLIBRARY̲MCDLL を 定 義 (define)す る こ と に よ っ て こ れ らの定義を使用できるようになります。
（ LOADLIBRARY̲MCDLLを 定 義 し な か っ た 場 合 は イ ン ポ ー ト ラ イ ブ ラ リ を 使 用 す る 設 定 に な り ま す 。 ）以下の例は、通信ライブラリの関数取得例を示します。
#define LOADLIBRARY̲MCDLL#include "Plmcomnt.h"// グ ロ ー バ ル デ ー タ 定 義
HINSTANCE
hComInst;
INITPROC*InitCommProc;
QUITPROC*QuitCommProc;// テ ク ノ 製 ラ イ ブ ラ リ 明 示 的 リ ン ク 指 定// 通 信 ラ イ ブ ラ リ 宣 言/* 通 信 ラ イ ブ ラ リ ハ ン ド ル/* 通 信 初 期 化 関 数 へ の ﾎﾟｲﾝﾀ/* 通 信 終 了 処 理 関 数 へ の ﾎﾟｲﾝﾀ

*/
*/
*/

// 通 信 ラ イ ブ ラ リ 関 数 ロ ー ド 処 理
int LoadPlmComm(void){// Ｄ Ｌ Ｌ の ロ ー ドif(NULL == (hComInst = LoadLibrary(LNCOMDLL))){
return 0;}// Ｄ Ｌ Ｌ が 正 常 に ロ ー ド で き た 場 合// Ｄ Ｌ Ｌ 関 数 ポ イ ン タ の 取 得
InitCommProc = (INITPROC *)GetProcAddress(hComInst, FNINITPROC);
QuitCommProc = (QUITPROC *)GetProcAddress(hComInst, FNQUITPROC);
if((NULL == InitCommProc) || (NULL == QuitCommProc)){// 関 数 ア ド レ ス 取 得 が 失 敗 し た 場 合// Ｄ Ｌ Ｌ の 解 放FreeLibrary(hComInst);
return 0;}
return 1;}

TB00-0813.jtd-5

９．関数仕様
９−１ ．通信

ＩｎｉｔＣｏｍｍＰｒｏｃ
機能
通信インタフェースの初期化及び、通信処理の組み込みを実行します。
プロトタイプ#include" Plmcomnt.h "関数宣言に必要なインクルードファイル

int WINAPI InitCommProc(PSXDEF psxdef, int *phCom );PSXDEFpsxdef

通信定義構造体
通信処理の各種定義を行います。
typedef struct {int
fComType;// 通 信 種 別 ﾌﾗｸﾞ
int
nComPort;// RS232C通 信 ﾎﾟｰﾄ番 号
int
nLptPort;// ﾊﾟﾗﾚﾙ通 信 ﾎﾟｰﾄ
int
nBoardId;// USB通 信 ID
int
fShare;// 共 有 フ ラ グ
int
fSxType;// SXｺﾝﾄﾛｰﾗ種 別
intnSize;// SXｺﾝﾄﾛｰﾗ定 義 構 造 体 サ イ ズ
long
fLogging;// 通 信 ﾛｷﾞﾝｸﾞﾌﾗｸﾞ
char*pLogFile; // 通 信 ﾛｷﾞﾝｸﾞﾌｧｲﾙ名
int
nStation;// ﾊﾟｿｺﾝﾘﾝｸｽﾃｰｼｮﾝ番 号 [1〜 32]
int
nCpuNo;// ﾊﾟｿｺﾝﾘﾝｸCPU番 号// [1:CPUﾓｼﾞｭｰﾙ、 2〜 4:ｱﾄﾞｵﾝCPUﾓｼﾞｭｰﾙ1〜 3]
int
nUnitNo;// ﾊﾟｿｺﾝﾘﾝｸﾕﾆｯﾄ番 号 [0〜 7]
int
nSlotNo;// ﾊﾟｿｺﾝﾘﾝｸｽﾛｯﾄ番 号 [1〜 16]
DWORD
dwLnkPrm1; // ﾊﾟｿｺﾝﾘﾝｸ 通 信 設 定 １// (COMRSLINK :通 信 速 度 /ﾊﾟﾘﾃｨ、// COMETHLINK:IPア ド レ ス )DWORD
dwLnkPrm2; // ﾊﾟｿｺﾝﾘﾝｸ 通 信 設 定 ２} SXDEF, *PSXDEF;
各変数の内容は以下の通りです。
fComType

通信種別フラグCOMRS232C(0)： Ｒ Ｓ ２ ３ ２ Ｃ 通 信
COMPARALLEL (1)： Ｒ Ｓ ２ ３ ２ Ｃ ＋ セ ン ト ロ 通 信
COMDPRAM(2)： Ｄ Ｐ Ｒ Ａ Ｍ 通 信
COMUSB(3)： Ｕ Ｓ Ｂ 通 信
COMETHERNET (4)： イ ー サ ネ ッ ト 通 信
COMRSLINK(5)： Ｒ Ｓ ２ ３ ２ Ｃ 上 位 リ ン ク 通 信
COMETHLINK (6)： イ ー サ ネ ッ ト 上 位 リ ン ク 通 信

nComPort

ＲＳ２３２Ｃ通信ポート番号【１〜２５６】

nLptPort

パラレル通信ポート【１〜４】
ＰＬＭＣでは使用しません。１を指定して下さい。

nBoardId

ＵＳＢ通信ＩＤ【０〜４】
ＰＬＭＣでは使用しません。０を指定して下さい。

fShare

共有フラグ【０〜１】
１を指定して下さい。

fSxTypeコントローラ種別
TYPE̲PLMC(0x20)： PLMC40

nSize

コントローラ定義構造体サイズ
常に本構造体のサイズを設定してください。
sizeof():VC++/ LenB():VB 関 数 で サ イ ズ を 取 得 で き ま す 。
TB00-0813.jtd-6

fLogging

通信ロギングフラグ
内容以下の通りです。
上位の未定義ビットは全て０にして下さい。
d0
ﾛｷﾞﾝｸﾞ無 効
常 時 ﾛｷﾞﾝｸﾞ
常 時 ﾛｷﾞﾝｸﾞ(初 期 化 /終 了 の み )常 時 ﾛｷﾞﾝｸﾞ(ﾃﾞｰﾀ送 信 の み )常 時 ﾛｷﾞﾝｸﾞ(ﾃﾞｰﾀ受 信 の み )常 時 ﾛｷﾞﾝｸﾞ(ｺﾏﾝﾄﾞ要 求 の み )ｴﾗｰﾛｷﾞﾝｸﾞ
ｴﾗｰﾛｷﾞﾝｸﾞ(伝 送 ｴﾗｰの み )pLogFile

通信ロギングファイル名
ＰＬＭＣとの通信のログをとる場合にログファイル名を指定します。
ログをとる場合、実行ファイルと同じディレクトリに
以下のファイルが作成されます。
１ ． ｢通 信 ﾛｷﾞﾝｸﾞﾌｧｲﾙ名 ｣で 指 定 し た ﾌｧｲﾙ
２ ． ｢通 信 ﾛｷﾞﾝｸﾞﾌｧｲﾙ名 ｣で 指 定 し た ﾌｧｲﾙの ﾍﾞｰｽ
ﾌｧｲﾙ名 の 最 後 に 1〜 5の 数 字 を 付 加 し た ﾌｧｲﾙ
３ ． PlmComo.tmp
COMﾎﾟｰﾄ 番号
ログファイル（１のファイル）が５１２Ｋバイトを越えると、現ログファイルはリネームされて履歴ファイルとなります。その後、新しいログファイルを作成してロギングを継続します。
履歴ファイル名は、指定されたログファイル名のベ ー ス 名 に 履 歴 番 号 と し て 1〜 5を 付 加 し た 名 前 で す 。
(最 大 ５ 世 代 )例 ） ロ グ フ ァ イ ル 名 と し て ” TMP.LOG” を 指 定 す る と 、履 歴 フ ァ イ ル と し て TMP1.LOG〜 TMP5.LOGが 作 成されます。

nStation

パ ソ コ ン リ ン グ ス テ ー シ ョ ン 番 号 【 1〜 32】
通信対象のパソコンリングモジュールのステーション
番号を指定します。

nCpuNoCPUス ロ ッ ト 番 号 【 1〜 4】
通 信 対 象 の FA-M3の CPUモ ジ ュ ー ル /ｱﾄﾞｵﾝCPUﾓｼﾞｭｰﾙのスロット番号を指定します。

nUnitNo

ﾊﾟｿｺﾝﾘﾝｸﾕﾆｯﾄ番 号 【 0〜 7】
光 FAバ ス 等 の サ ブ ユ ニ ッ ト 使 用 時 に 対 象 と な る PLMC-40が実装されているユニット番号を指定します。

nSlotNo

ﾊﾟｿｺﾝﾘﾝｸｽﾛｯﾄ番 号 【 1〜 16】
通 信 対 象 の PLMC-40が 実 装 さ れ て い る ス ロ ッ ト 番 号 を指定します。

dwLnkPrm1

ﾊﾟｿｺﾝﾘﾝｸ 通 信 設 定 １(COMRSLINK :通 信 速 度 /ﾊﾟﾘﾃｨ、 COMETHLINK:IPア ド レ ス )・ COMRSLINK(fComType=COMRSLINK)の 場 合
通 信 速 度 と ﾊﾟﾘﾃｨﾁｪｯｸの 組 み 合 わ せ を 設 定 し ま す 。
設定する値は、以下から選択します。
COM̲PCLCS̲9600PE(0)： 9600bps､パ リ テ ィ 偶 数
COM̲PCLCS̲9600PN(1)： 9600bps､パ リ テ ィ 無 しCOM̲PCLCS̲19200PE(2)： 19200bps､パ リ テ ィ 偶 数
COM̲PCLCS̲19200PN(3)： 19200bps､パ リ テ ィ 無 しCOM̲PCLCS̲38400PE(4)： 38400bps､パ リ テ ィ 偶 数
COM̲PCLCS̲38400PN(5)： 38400bps､パ リ テ ィ 無 しCOM̲PCLCS̲57600PE(6)： 57600bps､パ リ テ ィ 偶 数
COM̲PCLCS̲57600PN(7)： 57600bps､パ リ テ ィ 無 しCOM̲PCLCS̲115200PE (8)： 115200bps､パ リ テ ィ 偶 数
COM̲PCLCS̲115200PN (9)： 115200bps､パ リ テ ィ 無 し
TB00-0813.jtd-7

・ COMETHLINK(fComType=COMETHLINK)の 場 合
通 信 対 象 の ｲｰｻﾈｯﾄﾓｼﾞｭｰﾙ／ CPUﾓｼﾞｭｰﾙの IPｱﾄﾞﾚｽを
設 定 し ま す 。 IPｱﾄﾞﾚｽの ４ 桁 を 最 下 位 バ イ ト か ら
順番に格納します。
（ 例 ） 169.254.255.1 を 設 定 す る 場 合
DWORD

dwLnkPrm1
D0

1
255
254
169
(0x1)
(0xFF) (0xFE) (0xA9)
ｲｰｻﾈｯﾄﾓｼﾞｭｰﾙへ 接 続 し た 場 合 ：SW1〜 8で 設 定 し た ア ド レ ス を 設 定 し ま す 。
CPUﾓｼﾞｭｰﾙ(SP66-4S,SP67-6S)へ 接 続 し た 場 合 ：CPUプ ロ パ テ ィ の Ethernet設 定 へ 設 定 し た
IPア ド レ ス を 設 定 し ま す 。
dwLnkPrm2

パ ソ コ ン リ ン ク プ ロ ト コ ル 選 択 【 0〜 4】
パソコンリングコマンドの付加データ（プロトコル）を選択します。内容は以下の通りです。
上位の未定義ビットは全て０にして下さい。
D0
サ ム チ ェ ッ ク 有 効 ： COM̲PCLCF̲SUMCHK終 端 文 字 (0Dh)有 り ： COM̲PCLCF̲TERMEN
バイナリ通信： COM̲PCLCF̲BINARY● COMRSLINK： Ｒ Ｓ ２ ３ ２ Ｃ 上 位 リ ン ク 通 信 の 場 合・ ” サ ム チ ェ ッ ク 有 効 ” /” 終 端 文 字 (0Dh)有 り ” を設定して下さい。
● COMETHLINK： イ ー サ ネ ッ ト 上 位 リ ン ク 通 信 の 場 合・”バイナリ通信”を設定して下さい。
・ ｲｰｻﾈｯﾄﾓｼﾞｭｰﾙへ 接 続 し た 場 合 ：SW9の 設 定 に よ り 決 定 し ま す 。
CPUﾓｼﾞｭｰﾙ(SP66-4S,SP67-6S)へ 接 続 し た 場 合 ：CPUﾌﾟﾛﾊﾟﾃｨの 上 位 ﾘﾝｸｻｰﾋﾞｽ設 定 で 設 定 し た
形式です。

*phComint

通信ハンドル
初期化が正常に終了した場合に、ハンドルを格納するデータのポインタを指定します。

戻り値
通信処理実行ステータスとして以下の値を返します。
E$OK： 正常終了E$EMPTYHANDLE ： ハ ン ド ル 取 得 不 可
E$PARAM： パラメータ設定異常
E$ERR： 初期化処理異常終了
正常に初期化が終了した場合、接続されたＰＬＭＣコントローラを識別するためのハンドルを

phCom の 指 し 示 す ア ド レ ス へ 格 納 し ま す 。

TB00-0813.jtd-8

ＱｕｉｔＣｏｍｍＰｒｏｃ
機能関数ＩｎｉｔＣｏｍｍＰｒｏｃの実行によって組み込まれた通信処理を切り放し、組み込み前の状態に戻します。
プロトタイプ#include" Plmcomnt.h "関数宣言に必要なインクルードファイル

int WINAPI QuitCommProc(int hCom );

hCom

int

通信ハンドル
通信初期化処理で取得したハンドルを指定します。

戻り値
ステータスとして以下の値を返します。
E$OK
E$NOHANDLE
E$ERR： 正常終了： 無効ハンドル： 終了処理異常終了

TB00-0813.jtd-9

ＳｅｎｄＤａｔａ
機能
ＰＬＭＣコントローラに対して、各種データ設定を行います。
プロトタイプ#include" Plmcomnt.h "関数宣言に必要なインクルードファイル

int WINAPI SendData(int hCom , int type , short prm , DWORD size , LPVOID data );
int

hCom

通信ハンドル
通信初期化処理で取得したハンドルを指定します。

int

type

データタイプDAT̲PARAMETER等 、 送 信 す る デ ー タ の タ イ プ を 指 定 し ま す 。

short

prm

付加パラメータ
データタイプによって、以下のデータを指定して下さい。
以下に示されていないデータタイプについては０を指定して下さい。
・ DAT̲PROGRAM ： プ ロ グ ラ ム 番 号
・ DAT̲TASKPROG： タ ス ク 番 号
・ DAT̲DNCDATA ： 先 頭 ／ 継 続 フ ラ グ

DWORD

size

送信データサイズ
０〜６５５３５バイト

LPVOIDdata

送信データ格納バッファへのポインタ

１〜１２
０〜４
０：先頭時、１：継続時

本関数のデータタイプに指定できるデータについては、「標準ＰＬＭＣ４０対応送受信データ説明
書 」 の "デ ー タ 送 受 信 機 能 "を 参 照 し て 下 さ い 。
戻り値
通信処理実行ステータスとして以下の値を返します。
E$OK
E$DEVNRDY
E$PARAM
E$TIME
E$RTRY
E$MLTRTRY
E$HARDER
E$PROTECT
E$SEQ
E$PRGTERM
E$PRGBUFF
E$NOHANDLE： 正常終了： デバイス未初期化： 通信パラメータ設定異常： タイムアウト発生： リトライオーバー発生： 多重リトライ発生： 通信ハードウェアエラー
： 送信データ書込不可： 通信データフォーマットエラー： プログラム書込中断： プログラムバッファオーバーフロー： 無効ハンドル

TB00-0813.jtd-10

ＲｅｃｅｉｖｅＤａｔａ
機能
ＰＬＭＣコントローラ内部の、各種データ読出を行います。
プロトタイプ#include" Plmcomnt.h "関数宣言に必要なインクルードファイル

int WINAPI ReceiveData(int hCom , int type , LPDWORD size , LPVOID data );
int

hCom

通信ハンドル
通信初期化処理で取得したハンドルを指定します。

int

type

データタイプDAT̲PARAMETER等 、 受 信 す る デ ー タ の タ イ プ を 指 定 し ま す 。

short

prm

付加パラメータ
データタイプによって、以下のデータを指定して下さい。
以下に示されていないデータタイプについては０を指定して下さい。
・ DAT̲PROGRAM・ DAT̲TASKPROG： プログラム番号： タスク番号

１〜１２
０〜４

LPDWORD

size

受信データサイズ格納変数へのポインタ
ログデータ読み出し時は、１度に読み出すデータ数をセットします。

LPVOIDdata

受信データ格納バッファへのポインタ

本関数のデータタイプに指定できるデータについては、「標準ＰＬＭＣ４０対応送受信データ説明
書 」 の "デ ー タ 送 受 信 機 能 "を 参 照 し て 下 さ い 。
戻り値
通信処理実行ステータスとして以下の値を返します。
E$OK
E$DEVNRDY
E$PARAM
E$TIME
E$RTRY
E$MLTRTRY
E$HARDER
E$NEXIST
E$SEQ
E$NEXIST
E$NOHANDLE： 正常終了： デバイス未初期化： 通信パラメータ設定異常： タイムアウト発生： リトライオーバー発生： 多重リトライ発生： 通信ハードウェアエラー
： 要求データが存在しない： 通信データフォーマットエラー： 要求データが存在しない： 無効ハンドル

TB00-0813.jtd-11

ＳｅｎｄＣｏｍｍａｎｄ
機能
ＰＬＭＣコントローラに対して、各種動作指示を行います。
プロトタイプ#include" Plmcomnt.h "関数宣言に必要なインクルードファイル

int WINAPL SendCommand(int hCom , int cmnd , LPVOID data );
int

hCom

通信ハンドル
通信初期化処理で取得したハンドルを指定します。

int

cmnd

動作指示コード
REQ̲RESET等 、 動 作 指 示 の タ イ プ を 指 定 し ま す 。

LPVOIDdata

動作パラメータ格納バッファへのポインタ

本 関 数 の 動 作 指 示 コ ー ド に 指 定 で き る デ ー タ に つ い て は ､「 標 準 Ｐ Ｌ Ｍ -4000対 応 送 受 信 デ ー タ 説 明
書 」 の "動 作 コ マ ン ド 付 加 デ ー タ 詳 細 "を 参 照 し て 下 さ い 。

戻り値
通信処理実行ステータスとして以下の値を返します。
E$OK
E$DEVNRDY
E$PARAM
E$TIME
E$RTRY
E$MLTRTRY
E$HARDER
E$SEQ
E$CMDNOT
E$NOHANDLE： 正常終了： デバイス未初期化： 通信パラメータ設定異常： タイムアウト発生： リトライオーバー発生： 多重リトライ発生： 通信ハードウェアエラー
： 通信データフォーマットエラー： コマンド実行不可： 無効ハンドル

TB00-0813.jtd-12

ＤａｔＥｎｄｉａｎＣｈａｎｇｅ
機能
ダイナミックデータローディング（ＤＤＬ）用のデータ変換処理を行います。
ＰＣ／ＦＡ−Ｍ３／ＰＬＭＣでは、多バイトデータをメモリ／ファイルに格納する際のデータの並 び 順 (エ ン デ ィ ア ン ) が 異 な り ま す 。 本 関 数 で デ ー タ の 並 び 順 を 変 更 す る 事 で 、 デ ー タ を 相 互 に使用できるようにします。
※ 通信ライブラリを使用してＰＬＭＣと直接通信する場合は、本関数を使用する必要はありません。通信ライブラリ内で自動的に本関数を呼び出します。
ＦＡ−Ｍ３とＰＬＭＣのデータ通信（ダイナミックデータローディング）を使用する場合で、ＰＣとＦＡ−Ｍ３の間でもデータを相互に運用する場合に本関数を使用して下さい。
表 １ ） DWORDデ ー タ 0x12345678 を メ モ リ ／ フ ァ イ ル に 格 納 し た 場 合 の デ ー タ 並 び
データ元
アドレス
備考
０
１
２
３
(1) Ｐ Ｃ (Intel系 CPU)
７８
５６
３４
１２ リトルエンディアンと呼ばれています(2) Ｆ Ａ − Ｍ ３
５６
７８
１２
３４
(3) Ｐ Ｌ Ｍ Ｃ
１２
３４
５６
７８ ビッグエンディアンと呼ばれています
表 ２ ） WORDデ ー タ 0x1234 を メ モ リ ／ フ ァ イ ル に 格 納 し た 場 合 の デ ー タ 並 び
データ元
アドレス
備考
０
１
(1) Ｐ Ｃ (Intel系 CPU)
３４
１２ リトルエンディアンと呼ばれています(2) Ｆ Ａ − Ｍ ３１２３４(3) Ｐ Ｌ Ｍ Ｃ
１２
３４ ビッグエンディアンと呼ばれています【注意点】
デ ー タ タ イ プ （ DAT̲PARAMETER等 ） に 応 じ て 以 下 の ２ 通 り の 変 換 方 法 が あ り ま す 。
どちらの変換方法になるかは、データタイプにより決まりますので、御注意下さい。
○方式１
ＰＣアプリ

(1)Ｐ Ｃデータ

ＦＡ−Ｍ３
DatEndianChange(PCﾃﾞｰﾀ→ FA-M3ﾃﾞｰﾀ)(１ ) → (２ )注１

DatEndianChange(PCﾃﾞｰﾀ← FA-M3ﾃﾞｰﾀ)(１ ) ← (２ )(2)FA-M3
データ

ＰＬＭＣ

DDL

ラダーから
参照や変更
を出来ます

DatEndianChange(FA-M3ﾃﾞｰﾀ→ PLMCﾃﾞｰﾀ)(２ ) → (３ )(3)PLMCデータ
DatEndianChange(FA-M3ﾃﾞｰﾀ← PLMCﾃﾞｰﾀ)(２ ) ← (３ )PLMC内 部 で 自 動 的 に 変 換 し ま す 。

［データタイプ］
方式２以外のデータタイプ
○方式２
ＰＣアプリ

(1)Ｐ Ｃデータ

ＦＡ−Ｍ３
DatEndianChange(PCﾃﾞｰﾀ→ FA-M3ﾃﾞｰﾀ)(１ ) → (３ )DatEndianChange(PCﾃﾞｰﾀ← FA-M3ﾃﾞｰﾀ)(１ ) ← (３ )注１(3)PLMC
データ
ラダーから
参照や変更
出来ません

ＰＬＭＣ

DDL

DatEndianChange(FA-M3ﾃﾞｰﾀ→ PLMCﾃﾞｰﾀ)(２ ) → (３ )(3)PLMCデータ
DatEndianChange(FA-M3ﾃﾞｰﾀ← PLMCﾃﾞｰﾀ)(２ ) ← (３ )PLMC内 部 で は 変 換 を 行 い ま せ ん 。
［データタイプ］
DAT̲PROGRAM ： 動 作 プ ロ グ ラ ム （ バ イ ナ リ ） 送 受 信
DAT̲TASKPROG： マ ル チ タ ス ク 動 作 プ ロ グ ラ ム （ バ イ ナ リ ） 送 受 信
DAT̲DNCDATA ： Ｄ Ｎ Ｃ 動 作 プ ロ グ ラ ム （ バ イ ナ リ ） 送 信
DAT̲ADLOG：ＡＤロギングデータ受信
DAT̲TPCDATA ： Ｔ Ｐ Ｃ ロ ギ ン グ デ ー タ 受 信
注 １ ： メ モ リ モ ジ ュ ー ル (Ｃ Ｆ カ ー ド )／ イ ー サ ネ ッ ト モ ジ ュ ー ル 等 の Ｆ Ａ − Ｍ ３ の 機 能 を 使 用 し て 、ＰＣとＦＡ−Ｍ３の間でデータを授受します。
TB00-0813.jtd-13

プロトタイプ#include" Plmcomnt.h "関数宣言に必要なインクルードファイル

int WINAPL DatEndianChange(int lbcf , short type , long size , void * src , void * dst )

lbcf

int

データ変換フラグ
データの変換方法を指定します。
変換方法はデータタイプに応じて決まりますので、御注意下さい。
詳細は上記「機能」説明を参照下さい。
LBC̲McToPc：
LBC̲PcToMc：
LBC̲PcToM3：
LBC̲M3ToPc：/* PLMC → Ｐ Ｃ/* Ｐ Ｃ → PLMC/* Ｐ Ｃ → FA-M3/* FA-M3 → Ｐ Ｃ

*/
*/
*/
*/

int

type

データタイプDAT̲PARAMETER等 、 変 換 す る デ ー タ の タ イ プ を 指 定 し ま す 。

DWORD

size

変換データサイズ
０〜６５５３５バイト

void

* src

変換元データ格納バッファへのポインタ

void

* dst

変換先データ格納バッファへのポインタ

本関数のデータタイプに指定できるデータについては、「標準ＰＬＭＣ４０対応送受信データ説明
書 」 の "デ ー タ 送 受 信 機 能 "を 参 照 し て 下 さ い 。

戻り値
ＦＡＬＳＥ：変換失敗
ＴＲＵＥ ：変換成功

TB00-0813.jtd-14

９−２ ．タイマー
Ｗ ｉ ｎ ｄ ｏ ｗ ｓ が 持 つ ､１ ｍ ｓ ｅ ｃ 間 隔 の イ ン タ ー バ ル タ イ マ ー を も と に ､タ イ マ ー に よ る 処 理 のデ ィ レ イ や 同 期 ､ま た タ イ ム ア ウ ト 処 理 な ど が 可 能 と な り ま す 。
「タイマーチェック起点関数」及び「タイムアウトチェック関数」によりアプリケーションにて
通 信 処 理 以 外 の 目 的 で ､タ イ マ ー 処 理 を 行 う こ と が で き ま す 。

ＳｅｔＴｉｍｅＯｕｔ
機能
タイムアウトチェックの起点設定を行います。
プロトタイプ#include" Plmcomnt.h "void WINAPI

SetTimeOut ( LPDWORD

originLPDWORD関数宣言に必要なインクルードファイル

origin );タイムアウトチェック起点時間格納ポインタ

ＣｈｅｃｋＴｉｍｅＯｕｔ
機能
タイムアウトの判定を行います。
プロトタイプ#include" Plmcomnt.h "関数宣言に必要なインクルードファイル

BOOl WINAPI

CheckeTimeOut ( DWORD

DWORD
DWORD

originlimit

origin,DWORD

limit );

関 数 SetTimeOut()で 取 得 し た タ イ ム ア ウ ト チ ェ ッ ク 起 点 時 間
タ イ ム リ ミ ッ ト 値 (単 位 ： １ ｍ ｓ ｅ ｃ )

戻り値
＝
＝

ＦＡＬＳＥ：タイムアウトしていない
ＴＲＵＥ ：タイムアウトしている例#include#include<conio.h>"Plmcomnt.h"main(){
intch;
DWORD StartTime;
ch＝ getch();/*キ ー 入 力*/
SetTimeOut(&StartTime);/*タ イ マ ー チ ェ ッ ク 起 点 設 定 */While(!CheckTimeOut(StartTime,20L));/*１ ． １ 秒 待 ち*/
putch(ch);/*入 力 キ ー コ ー ド 表 示*/}
こ の プ ロ グ ラ ム は ､キ ー 入 力 が あ っ て か ら １ ． １ 秒 後 に ､入 力 キ ー を 表 示 し ま す 。

TB00-0813.jtd-15