標準ＰＬＭＣ－ＭⅡＥｘ対応
通信ライブラリ
リファレンスマニュアル

ＰＬＭＥＸ－ＣＯＭＮＴ説 明 書Ｖｅｒ１．３2011.07.01

TB00-0903.jtd-1

－目次－
１．形式

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

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

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

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

６ ． 複 数 台 で の 使 用 ……………………………………………………………………………………………………… 3

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

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

９．関数使用例………………………………………………………………………………… 4………………………………………………………………………………………………………… 4

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

１０．関数仕様
１０－１ ．通信……………………………………………………… 4………………………………………………………………………………………………………… 6……………………………………………………………………………………………………… 6

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

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

TB00-0903.jtd-2

１．形式
ＰＬＭＥＸＣＯＭ－ＮＴ

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

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

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

４．関連資料「標準ＰＬＭＣ－ＭⅡＥｘ対応 ユーザーズマニュアル」（ＴＢ００－０９００）「標準ＰＬＭＣ－ＭⅡＥｘ対応 セッティングＰＣマニュアル」（ＴＢ００－０９０１）「標準ＰＬＭＣ－ＭⅡＥｘ対応 ＲＯＭＳＷ設定ソフトマニュアル」（ＴＢ００－０９０２）「標準ＰＬＭＣ－ＭⅡＥｘ対応 通信ライブラリリファレンスマニュアル」（ＴＢ００－０９０３）「標準ＰＬＭＣ－ＭⅡＥｘ対応 送受信データ説明書」（ＴＢ００－０９０４）「標準ＰＬＭＣ－ＭⅡＥｘ対応 Ｔコード変換ライブラリリファレンスマニュアル」（ＴＢ００－０９０５）「標準ＰＬＭＣ－ＭⅡＥｘ対応 Ｇコード変換ライブラリリファレンスマニュアル」（ＴＢ００－０９０６）「標準ＰＬＭＣ－ＭⅡＥｘ対応 サンプルラダープログラム説明書」（ＴＢ００－０９１７）「標準ＰＬＭＣ－４０／ＭⅡ対応 サンプルラダープログラム補足説明書」（ＴＢ００－０８８４）※サンプルアプリケーション（サンプルソース／説明）はテクノホームページからダウンロード
してください。
５．使用環境本ライブラリが対応するパソコン及び、Ｃコンパイラは以下の通りです。
対応パソコン
対応コンパイラ・・・・・・Windows XP/Vista/7が 動 作 す る ｘ ８ ６ Ｃ Ｐ Ｕ 搭 載 機
Ｖｉｓｕａｌ Ｃ＋＋ Ｖｅｒ６．０
Ｖｉｓｕａｌ Ｂａｓｉｃ Ｖｅｒ６．０

６．複数台での使用
１台のパソコンから複数台のＰＬＭＣ－ＭⅡＥｘと送受信を行うことが可能です。
複数台のパソコンから１台のＰＬＭＣ－ＭⅡＥｘに送受信を行うことはできません。

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

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

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

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

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

･････

_InitCommProc@8

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

TB00-0903.jtd-4

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

１０．関数仕様
１０－１ ．通信ＩｎｉｔＣｏｍｍＰｒｏｃ
機能
通信インタフェースの初期化及び、通信処理の組み込みを実行します。
プロトタイプ#include"Plmexcomnt.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-MⅡ Ex ユ ニ ッ ト 番 号 [0～ 7]
short
nSlotNo;// PLMC-MⅡ Ex ス ロ ッ ト 番 号 [1～ 16]
short
Reserved;// 予 約// pclink Rs232c
short
nComPort;// Ｐ Ｃ Ｒ Ｓ ２ ３ ２ Ｃ 通 信 ポ ー ト 番 号
shortnStation;// ﾊﾟｿｺﾝﾘﾝｸﾓｼﾞｭｰﾙ ｽﾃｰｼｮﾝ番 号 [1～ 32]
short
nComSel;// ﾊﾟｿｺﾝﾘﾝｸﾓｼﾞｭｰﾙ 通 信 速 度 ／ パ リ テ ィ 選 択
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-0903.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Ⅱ Exユ ニ ッ ト 番 号【 0～ 7】
光 FAバ ス 等 の サ ブ ユ ニ ッ ト 使 用 時 に 対 象 と な る PLMC-MⅡ
Exが 実 装 さ れ て い る ユ ニ ッ ト 番 号 を 指 定 し ま す 。

nSlotNo

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

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-0903.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 の 指 し 示 す ア ド レ ス へ 格 納 し ま す 。

【参考】
ＶＢ６．０使用時のログファイル名指定方法【方法１】
SXDEFの 初 期 化 で
sdf.pLogFile = StrPtr(StrConv("test.log", vbFromUnicode)) '通 信 ロ ギ ン グ フ ァ イ ル 名
と指定。
【方法２】
Plmexcomapi.txtの SXDEF構 造 体 に あ り ま す pLogFileを
pLogFile As Stringと変更し
SXDEFの 初 期 化 で
sdf.pLigFile = "test.log"'通 信 ロ ギ ン グ フ ァ イ ル 名と指定。

TB00-0903.jtd-8

ＱｕｉｔＣｏｍｍＰｒｏｃ
機能関数ＩｎｉｔＣｏｍｍＰｒｏｃの実行によって組み込まれた通信処理を切り放し、組み込み前の状態に戻します。
プロトタイプ#include"Plmexcomnt.h"

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

int WINAPI QuitCommProc(int hCom );

hCom

int

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

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

ＳｅｎｄＤａｔａ
機能
ＰＬＭＣ－ＭⅡＥｘコントローラに対して、各種データ設定を行います。
プロトタイプ#include"Plmexcomnt.h"

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

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

hCom

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

short

type

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

short

task

タスク番号
設定対象のタスク番号（０～７）を指定します。
タスク指定が関係ない設定の場合は０を指定して下さい。

long

prm

付加パラメータ
データタイプによって、以下のデータを指定して下さい。
以下に示されていないデータタイプについては０を指定して下さい。
・ DAT_PROGRAM ： ﾌﾟﾛｸﾞﾗﾑ番 号 (D0～ D15)､先 頭 ﾌﾞﾛｯｸ番 号 (D16～ D31)

MSB

LSB

ﾌﾟﾛｸﾞﾗﾑ番 号(1～ 32767)
先 頭 ﾌﾞﾛｯｸ番 号(0～ 63)０：先頭時、１：継続時

・ DAT_DNCDATA ： 先 頭 ／ 継 続 フ ラ グ
・ DAT_MCRREG ： マ ク ロ 変 数 番 号
・ DAT_ACOPARAM： ０ ： １ タ ス ク 分 の 受 信 、 １ ： 全 タ ス ク 分 の 受 信・ DAT_POINTTABLE： 書 込 ﾎﾟｲﾝﾄ数 (D0～ D9)､書 込 開 始 番 号 (D10～ D19)
軸 ﾌﾗｸﾞ(D20～ D28)
MSB

LSB

書 込 ﾎﾟｲﾝﾄ数(1～ 400)
書込開始番号(1～ 400)
対 象 軸 (軸 ﾌﾗｸﾞ)
DWORD

size

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

LPVOIDdata

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

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

送受信

戻り値
通信処理実行ステータスとして以下の値を返します。
E$OK
E$DEVNRDY： 正常終了： デバイス未初期化
TB00-0903.jtd-10

E$PARAM
E$TIME
E$RTRY
E$MLTRTRY
E$HARDER
E$PROTECT
E$SEQ
E$PRGTERM
E$PRGBUFF
E$NOHANDLE： 通信パラメータ設定異常： タイムアウト発生： リトライオーバー発生： 多重リトライ発生： 通信ハードウェアエラー
： 送信データ書込不可： 通信データフォーマットエラー： プログラム書込中断： プログラムバッファオーバーフロー： 無効ハンドル

ＲｅｃｅｉｖｅＤａｔａ
機能
ＰＬＭＣ－ＭⅡＥｘコントローラ内部の、各種データ読出を行います。
プロトタイプ#include"Plmexcomnt.h"

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

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

hCom

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

short

type

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

short

task

タスク番号
読出対象のタスク番号（０～７）を指定します。
タスク指定が関係ない読出の場合は０を指定して下さい。

long

prm

付加パラメータ
データタイプによって、以下のデータを指定して下さい。
以下に示されていないデータタイプについては０を指定して下さい。
・ DAT_PROGRAM・ DAT_ONEBLOCK・ DAT_MCRREG・ DAT_TPCDATA
・ DAT_ML2INFO・ DAT_ML2MON： プログラム番号 １～３２７６７： ステップ番号０～３２７６７： マクロ変数番号： 読 み 出 し デ ー タ サ イ ズ 0～ 65535： 軸番号
０ ～ 軸 数 -1： 軸 指 定 (1軸 分 )－１：全軸指定： 軸 番 号 (D0～ D3)、 送 受 信 デ ー タ フ ラ グ (D15)

MSB

LSB

０ ～ 軸 数 -1
０：受信
１：送信
・ DAT_ACOPARAM： ０ ： １ タ ス ク 分 の 受 信 、 １ ： 全 タ ス ク 分 の 受 信・ DAT_POINTTABLE： 書 込 ﾎﾟｲﾝﾄ数 (D0～ D9)､書 込 開 始 番 号 (D10～ D19)
軸 ﾌﾗｸﾞ(D20～ D28)
MSB

LSB

読 出 ﾎﾟｲﾝﾄ数(1～ 400)
読出開始番号(1～ 400)
対 象 軸 (軸 ﾌﾗｸﾞ)LPDWORD

size

受信データサイズ格納変数へのポインタ

LPVOIDdata

受信データ格納バッファへのポインタ
TB00-0903.jtd-11本関数のデータタイプに指定できるデータについては、「標準ＰＬＭＣ－ＭⅡＥｘ対応
デ ー タ 説 明 書 」 の "デ ー タ 送 受 信 機 能 "を 参 照 し て 下 さ い 。

送受信

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

ＳｅｎｄＣｏｍｍａｎｄ
機能
ＰＬＭＣ－ＭⅡＥｘコントローラに対して、各種動作指示を行います。
プロトタイプ#include"Plmexcomnt.h"

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

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

hCom

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

short

cmnd

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

short

task

タスク番号
動作指示対象のタスク番号（０～７）を指定します。
タスク指定が関係ない動作指示の場合は０を指定して下さい。

LPVOIDdata

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

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

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

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

(1)Ｐ Ｃデータ

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

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

ＰＬＭＣ－ＭⅡＥｘ

DDL

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

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

［データタイプ］
方式２以外のデータタイプ
○方式２
ＰＣアプリ
DatEndianChange(PCﾃﾞｰﾀ→ PLMC-MⅡ Exﾃﾞｰﾀ)(1)Ｐ Ｃ(１ ) → (３ )データ
DatEndianChange(PCﾃﾞｰﾀ← PLMC-MⅡ Exﾃﾞｰﾀ)(１ ) ← (３ )

ＦＡ－Ｍ３

注
１

(3)PLMC-MⅡ
データ
ラダーから
参照や変更
出来ません

ＰＬＭＣ－ＭⅡＥｘ

DDL

DatEndianChange(FA-M3ﾃﾞｰﾀ→ PLMC-MⅡ Exﾃﾞｰﾀ)(２ ) → (３ ) (3)PLMC-MⅡ
データ
DatEndianChange(FA-M3ﾃﾞｰﾀ← PLMC-MⅡ Exﾃﾞｰﾀ)(２ ) ← (３ )PLMC-MⅡ Ex内 部 で は 変 換 を 行 い ま せ ん 。
［データタイプ］
DAT_PROGRAM ： 運 転 プ ロ グ ラ ム （ バ イ ナ リ ） 送 受 信
DAT_DNCDATA ： Ｄ Ｎ Ｃ 運 転 プ ロ グ ラ ム （ バ イ ナ リ ） 送 信
DAT_ADLOG：ＡＤロギングデータ受信
DAT_TPCDATA ： Ｔ Ｐ Ｃ ロ ギ ン グ デ ー タ 受 信
注 １ ： メ モ リ モ ジ ュ ー ル (Ｃ Ｆ カ ー ド )／ イ ー サ ネ ッ ト モ ジ ュ ー ル 等 の Ｆ Ａ － Ｍ ３ の 機 能 を 使 用 し て 、ＰＣとＦＡ－Ｍ３の間でデータを授受します。
TB00-0903.jtd-13

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

short

type

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

long

size

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

void

* src

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

void

* dst

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

*/
*/
*/
*/

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

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

TB00-0903.jtd-14

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

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

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

SetTimeOut(LPDWORD

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

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

ＣｈｅｃｋＴｉｍｅＯｕｔ
機能
タイムアウトの判定を行います。
プロトタイプ#include"Plmexcomnt.h"

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

BOOl WINAPI

CheckTimeOut(DWORD

DWORD
DWORD

originlimit

origin,DWORD

limit );

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

戻り値
＝
＝

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

TB00-0903.jtd-16