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

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

TB00-0863.jtd-1

−目次−
１．形式

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

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

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

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

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

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

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

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

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

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

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

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

TB00-0863.jtd-2

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

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

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

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

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

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

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

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

TB00-0863.jtd-3

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

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

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

･････

̲InitCommProc@8

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

TB00-0863.jtd-4

関 数 ア ド レ ス 取 得 時 に 指 定 す る 関 数 名 ／ 関 数 ポ イ ン タ の デ ー タ 型 は ､Plm2comnt.h内 で定義しています。
Plm2comnt.h を イ ン ク ル ー ド す る 前 に LOADLIBRARY̲MCDLL を 定 義 (define)す る こ と に よ っ て こ れ らの定義を使用できるようになります。
（ LOADLIBRARY̲MCDLLを 定 義 し な か っ た 場 合 は イ ン ポ ー ト ラ イ ブ ラ リ を 使 用 す る 設 定 に な り ま す 。 ）以下の例は、通信ライブラリの関数取得例を示します。
#define LOADLIBRARY̲MCDLL#include "Plm2comnt.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-0863.jtd-5

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

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

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

通信定義構造体
通信処理の各種定義を行います。
typedef struct {longnSize;// 通 信 初 期 化 構 造 体 サ イ ズ
short
fComType;// 通 信 種 別 フ ラ グ
short
fShare;// 共 有 フ ラ グ
long
fLogging;// 通 信 ロ ギ ン グ フ ラ グ
char*pLogFile;// 通 信 ロ ギ ン グ フ ァ イ ル 名// pclink common
short
nCpuNo;// CPU番 号
shortnUnitNo;// PLMC-M2 ユ ニ ッ ト 番 号 [0〜 7]
short
nSlotNo;// PLMC-M2 ス ロ ッ ト 番 号 [1〜 16]
shortReserved;// 予 約// pclink Rs232c
short
nComPort;// Ｐ Ｃ Ｒ Ｓ ２ ３ ２ Ｃ 通 信 ポ ー ト 番 号
shortnStation;// ﾊﾟｿｺﾝﾘﾝｸﾓｼﾞｭｰﾙ ｽﾃｰｼｮﾝ番 号 [1〜 32]
shortnComSel;// ﾊﾟｿｺﾝﾘﾝｸﾓｼﾞｭｰﾙ 通 信 速 度 ／ パ リ テ ィ 選 択
short
fComFlag;// ﾊﾟｿｺﾝﾘﾝｸﾓｼﾞｭｰﾙ 付 加 デ ー タ 選 択 フ ラ グ// pclink Ether
unsigned charnIpAddr[4];// ｲｰｻﾈｯﾄﾓｼﾞｭｰﾙ Ｉ Ｐ ア ド レ ス
unsigned short nIpPort;// ｲｰｻﾈｯﾄﾓｼﾞｭｰﾙ ポ ー ト 番 号
shortfBinary;// ｲｰｻﾈｯﾄﾓｼﾞｭｰﾙ バ イ ナ リ モ ー ド フ ラ グ} SXDEF, *PSXDEF;
各変数の内容は以下の通りです。
nSize

構造体サイズ本構造体（通信定義構造体）のサイズを設定して下さい。
sizeof():VC++/ LenB():VB 関 数 で サ イ ズ を 取 得 で き ま す 。

fComType

通信種別フラグ【 0〜 1】
ﾊﾟｿｺﾝﾘﾝｸ(RS232C)(0)： Ｒ Ｓ ２ ３ ２ Ｃ 通 信
ﾊﾟｿｺﾝﾘﾝｸ(ｲｰｻﾈｯﾄ)(1)： イ ー サ ネ ッ ト 通 信

fShare

共有フラグ
１を指定して下さい。

fLogging

通信ロギングフラグ
通信ロギングの設定を行います。内容は通りです。
上位の未定義ビットは全て０にして下さい。
尚、全ビットを０にすると、ロギング無効になります。
D0【１】

ﾛｷﾞﾝｸﾞ無 効
常 時 ﾛｷﾞﾝｸﾞ
常 時 ﾛｷﾞﾝｸﾞ(初 期 化 /終 了 の み )常 時 ﾛｷﾞﾝｸﾞ(ﾃﾞｰﾀ送 信 の み )常 時 ﾛｷﾞﾝｸﾞ(ﾃﾞｰﾀ受 信 の み )常 時 ﾛｷﾞﾝｸﾞ(ｺﾏﾝﾄﾞ要 求 の み )ｴﾗｰﾛｷﾞﾝｸﾞ
ｴﾗｰﾛｷﾞﾝｸﾞ(伝 送 ｴﾗｰの み )ﾘﾄﾗｲﾛｷﾞﾝｸﾞ

TB00-0863.jtd-6

pLogFile

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

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

nUnitNo

PLMC-MⅡ ユ ニ ッ ト 番 号【 0〜 7】
光 FAバ ス 等 の サ ブ ユ ニ ッ ト 使 用 時 に 対 象 と な る PLMC-MⅡが実装されているユニット番号を指定します。

nSlotNo

PLMC-MⅡ ス ロ ッ ト 番 号【 1〜 16】
通 信 対 象 の PLMC-MⅡ が 実 装 さ れ て い る ス ロ ッ ト 番 号 を指定します。

nComPort

シリアル通信ポート番号【 1〜 256】
ＲＳ２３２Ｃ通信に使用するシリアルポート番号を指定します。

nStation

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

nComSel

通信速度／パリティ選択【 0〜 9】 ※ 1
Ｒ Ｓ ２ ３ ２ Ｃ 通 信 時 の 通 信 速 度 と ﾊﾟﾘﾃｨﾁｪｯｸの 組 み 合 わ せを設定します。
設定する値は、以下から選択します。
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､パ リ テ ィ 無 し

fComFlag

パソコンリンクプロトコル選択【 0〜 3】 ※ 1
ＲＳ２３２Ｃ通信時のパソコンリングコマンドの付加データ（プロトコル）を選択します。
内容は以下の通りです。
上位の未定義ビットは全て０にして下さい。
D0
サ ム チ ェ ッ ク 有 効 ： COM̲PCLCF̲SUMCHK終 端 文 字 (0Dh)有 り ： COM̲PCLCF̲TERMEN
TB00-0863.jtd-7

nIpAddr

ｲｰｻﾈｯﾄ通 信 時 の 接 続 先 IPア ド レ ス
ｲｰｻﾈｯﾄﾓｼﾞｭｰﾙへ 接 続 し た 場 合 ：SW1〜 8で 設 定 し た ア ド レ ス
CPUﾓｼﾞｭｰﾙ(SP66-4S,SP67-6S)へ 接 続 し た 場 合 ：CPUプ ロ パ テ ィ の Ethernet設 定 へ 設 定 し た IPア ド レ ス
例 )169.254.205.249を 設 定 す る 場 合
nIpAddr[0]= 169、 nIpAddr[1]= 254、
nIpAddr[2]= 205、 nIpAddr[3]= 249

nIpPort

接続先ポート番号【 12289/12291】 ※ 1
ｲｰｻﾈｯﾄ通 信 時 の 接 続 先 ポ ー ト 番 号 を 指 定 し ま す 。
以下のどちらかの値を選択して下さい。
12289： COM̲PCLPT̲ETHERPORT0
12291： COM̲PCLPT̲ETHERPORT1
ｲｰｻﾈｯﾄﾓｼﾞｭｰﾙへ 接 続 し た 場 合 、 機 種 に よ っ て は
ポート番号が選択できないものがあります。

fBinary

バイナリ通信フラグ【 0〜 1】 ※ 1
ｲｰｻﾈｯﾄ通 信 時 の 接 続 先 ポ ー ト の コ マ ン ド デ ー タ 形 式(0):ASCII形 式(1):バ イ ナ リ 形 式
選択したポート番号のコマンドデータ形式は
ｲｰｻﾈｯﾄﾓｼﾞｭｰﾙへ 接 続 し た 場 合 ：SW9の 設 定 に よ り 決 定CPUﾓｼﾞｭｰﾙ(SP66-4S,SP67-6S)へ 接 続 し た 場 合 ：CPUﾌﾟﾛﾊﾟﾃｨの 上 位 ﾘﾝｸｻｰﾋﾞｽ設 定 で 設 定 し た 形 式※ 1. 各 設 定 に 関 し て は「標準ＰＬＭＣ−ＭⅡ対応 セッティングＰＣマニュアル」（ Ｔ Ｂ ０ ０ − ０ ８ ６ １ ） 5-4-1.ｲﾝﾀｰﾌｪｰｽ設 定 画 面 も 参 照 に し て下さい。
通信の種別により、以下の項目の設定の必要はありません。
ｲｰｻﾈｯﾄ通 信 時 ： nComPort、 nComSel、 fComFlag
但 し 、 nStationに は 1を 設 定
Rs232C通 信 時 ： nIpAddr 、 nIpPort 、 fBinary
int*phCom

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

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

TB00-0863.jtd-8

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

int WINAPI QuitCommProc(int hCom );

hCom

int

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

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

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

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

hCom

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

short

type

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

short

prm

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

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-0863.jtd-10

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

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

hCom

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

short

type

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

short

prm

付加パラメータ
データタイプによって、以下のデータを指定して下さい。
以下に示されていないデータタイプについては０を指定して下さい。
・ DAT̲PROGRAM： プログラム番号 １〜１２・ DAT̲TASKPROG ： タ ス ク 番 号
０〜６
・ DAT̲TASKPRGSTS： タ ス ク 番 号
０〜６
・ DAT̲ONEBLOCK ： ス テ ッ プ 番 号
０〜６１９・ DAT̲MCRREG： マクロ変数番号
・ DAT̲TPCDATA： 読 み 出 し デ ー タ サ イ ズ 0〜 65535
・ DAT̲ML2INFO： 軸番号
０ 〜 軸 数 -1： 軸 指 定 (1軸 分 )−１：全軸指定
・ DAT̲ML2MON： 軸 番 号 (D0〜 D3)、 送 受 信 デ ー タ フ ラ グ (D15)
MSB

LSB

０ 〜 軸 数 -1
０：受信
１：送信
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-0863.jtd-11

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

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

hCom

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

short

cmnd

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

LPVOIDdata

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

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

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

TB00-0863.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-MⅡ
データ
DatEndianChange(FA-M3ﾃﾞｰﾀ← PLMC-MⅡ ﾃﾞｰﾀ)(２ ) ← (３ )PLMC-MⅡ 内 部 で 自 動 的 に 変 換 し ま す 。

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

(1)Ｐ Ｃデータ

DatEndianChange(PCﾃﾞｰﾀ→ FA-M3ﾃﾞｰﾀ)(１ ) → (３ )DatEndianChange(PCﾃﾞｰﾀ← FA-M3ﾃﾞｰﾀ)(１ ) ← (３ )

注
１

ＦＡ−Ｍ３

ＰＬＭＣ−ＭⅡ(3)PLMC-MⅡ
データ

DatEndianChange(FA-M3ﾃﾞｰﾀ→ PLMC-MⅡ ﾃﾞｰﾀ)(２ ) → (３ ) (3)PLMC-MⅡ
データ
DatEndianChange(FA-M3ﾃﾞｰﾀ← PLMC-MⅡ ﾃﾞｰﾀ)(２ ) ← (３ )

ラダーから
参照や変更
出来ません

DDL

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

プロトタイプ#include" Plm2comnt.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-MⅡ → Ｐ Ｃ/* Ｐ Ｃ→ PLMC-MⅡ/* Ｐ Ｃ→ FA-M3/* FA-M3
→ ＰＣ

short

type

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

long

size

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

void

* src

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

void

* dst

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

*/
*/
*/
*/

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

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

TB00-0863.jtd-14

ＳｅｔＥｒｒｌｏｇ
機能PLMC-MⅡ コ ン ト ロ ー ラ に 対 し て 、 通 信 エ ラ ー ロ グ フ ァ イ ル 名 を 指 定 し ま す 。
通信初期化処理で設定した項目と同じです。
この関数によっても、エラーログファイルを指定できます。
エラーログファイル名やフラグのみを変更する場合に使用します。
プロトタイプ#include "plm2comnt.h"

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

int WINAPI SetErrLog( int hCom, char *fname, short flg );int
hCom
通信ハンドル
通信初期化処理で取得したハンドルを指定します。
char*fname通信ロギングファイル名
InitComProcの pLogFileの 項 を ご 参 照 下 さ い 。

short

flg

通信ロギングフラグ
InitComProcの fLoggingの 項 を ご 参 照 下 さ い 。

戻り値
通信処理実行ステータスとして以下の値を返します。
E$OK
E$DEVNRDY
E$PARAM
E$NOHANDLE
E$ERR： 正常終了： デバイス未初期化： 通信パラメータ設定異常： 無効ハンドル： 初期化処理異常終了

TB00-0863.jtd-15

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

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

SetTimeOut ( LPDWORD

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

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

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

BOOl WINAPI

CheckeTimeOut ( DWORD

DWORD
DWORD

originlimit

origin,DWORD

limit );

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

戻り値
＝
＝

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

TB00-0863.jtd-16