資料 No.031-
0029
L
L
t
t
C
C
S
S
o
o
f
f
t
t
(
(
三
三
菱
菱
ラ
ラ
ダ
ダ
ー
ー
プ
プ
ロ
ロ
グ
グ
ラ
ラ
ム
ム
→
→
C
C
プ
プ
ロ
ロ
グ
グ
ラ
ラ
ム
ム
コ
コ
ン
ン
バ
バ
ー
ー
タ
タ
)
)
、
、
T
T
D
D
G
G
シ
シ
ス
ス
テ
テ
ム
ム
プ
プ
ロ
ロ
グ
グ
ラ
ラ
ム
ム
(
(
三
三
菱
菱
版
版
)
)
ア
ア
プ
プ
リ
リ
ケ
ケ
ー
ー
シ
シ
ョ
ョ
ン
ン
ソ
ソ
フ
フ
ト
ト
説
説
明
明
書
書
第四版
TDG
東京電気技術工業株式会社
∼はじめに∼
本書はTDG製作の「三菱ラダープログラム→Cプログラムコンバータ」の概要、対応コマン
ドについてと「CPU基板用TDGシステムプログラム」の概要、プログラム作成手順について
記しています。
また、
CPU基板用TDGシステムプログラムはあくまでも当社のPLC基板上での動作確認
をしていますのでCPU基板により十分な動作ができない機能が発生する可能性もあります。
以下、
「三菱ラダーコンバータ」をLtC Soft、
「三菱製ラダー作成ツールGX−Deve
loper」をGX−Developerと記載します。
∼改訂履歴∼
日 付
版
改訂履歴
04 年 10 月
1
初版
06 年 1 月
2
変更/修正
06 年 2 月
3
変更/修正
06 年 9 月
4
変更/修正
∼目 次∼
1.LtC Soft説明
1_1.概要・・・・・・・・・・・・・・・・・・・・・・・・・・・3
1_2.アプリケーション動作環境・・・・・・・・・・・・・・・・・3
1_3.対応デバイス一覧・・・・・・・・・・・・・・・・・・・・・3
1_4.対応特殊機能・・・・・・・・・・・・・・・・・・・・・・・3
1_5.ラダープログラム作成においての注意事項・・・・・・・・・・4
2.LtC実行ファイル(mldcnv.exe)説明・・・・・・・・・・・・・・4
3.三菱版LtC Soft対応コマンド一覧
3_1.接点命令・・・・・・・・・・・・・・・・・・・・・・・・・5
3_2.結合命令・・・・・・・・・・・・・・・・・・・・・・・・・5
3_3.出力命令・・・・・・・・・・・・・・・・・・・・・・・・・5
3_4.シフト命令・・・・・・・・・・・・・・・・・・・・・・・・6
3_5.マスタコントロール命令・・・・・・・・・・・・・・・・・・6
3_6.終了命令・・・・・・・・・・・・・・・・・・・・・・・・・6
3_7.BIN16ビットデータ比較演算命令・・・・・・・・・・・・6
3_8.BIN32ビットデータ比較演算命令・・・・・・・・・・・・6
3_9.ブロックデータ比較演算命令・・・・・・・・・・・・・・・・6
3_10.BIN算術演算命令・・・・・・・・・・・・・・・・・・・6
3_11.BCD算術演算命令・・・・・・・・・・・・・・・・・・・6
3_12.ブロック算術演算命令・・・・・・・・・・・・・・・・・・7
3_13.インクリメント/デクリメント命令・・・・・・・・・・・・7
3_14.BCD変換命令・・・・・・・・・・・・・・・・・・・・・7
3_15.BIN変換命令・・・・・・・・・・・・・・・・・・・・・7
3_16.2の補数変換命令・・・・・・・・・・・・・・・・・・・・7
3_17.ブロック変換命令・・・・・・・・・・・・・・・・・・・・7
3_18.データ転送命令・・・・・・・・・・・・・・・・・・・・・7
3_19.論理演算命令・・・・・・・・・・・・・・・・・・・・・・8
3_20.ローテーション命令・・・・・・・・・・・・・・・・・・・9
3_21.シフト命令・・・・・・・・・・・・・・・・・・・・・・・9
3_22.ビット処理命令・・・・・・・・・・・・・・・・・・・・・10
3_23.繰り返し命令・・・・・・・・・・・・・・・・・・・・・・10
3_24.サブルーチン命令・・・・・・・・・・・・・・・・・・・・10
3_25.8→256ビットデコード命令・・・・・・・・・・・・・・11
3_26.256→8ビットエンコード命令・・・・・・・・・・・・・11
4.TDGシステムプログラム説明
4_1.概要・・・・・・・・・・・・・・・・・・・・・・・・・・・12
4_2.機能説明・・・・・・・・・・・・・・・・・・・・・・・・・12
5.USBガードキーソフトインストール説明・・・・・・・・・・・・・13
6.実行プログラム作成
6_1.作成手順・・・・・・・・・・・・・・・・・・・・・・・・・15
1.
LtC Soft説明
1_1.概要
GX−Developerで作成したラダープログラムの内容をCプログラムのファイ
ルにコンバートします。
CプログラムのファイルですからTDGシステムプログラム(CPU基板とのインターフ
ェース機能搭載)と結合しあらゆるCPU基板上で動作可能になります。
1_2.アプリケーション動作環境
OS
Windows98、Windows2000、WindowsXP
CPU
Pentium 133Hz 以上
必要メモリ
32MB 以上
ハードディスク
50MB 以上
USBポート
必要(USB ガードキー用)
1_3.対応デバイス一覧
デバイス名
デバイス説明
デバイス容量
X
入力デバイス
CPU基板のメモリに依存
Y
出力デバイス
〃
M
内部リレー
〃
T
タイマ
〃
C
カウンタ
〃
D
データレジスタ
〃
R
ファイルレジスタ
〃
Z
インデックスレジスタ
〃
SM
システムデバイス
TDGシステムプログラム説明参照
※上記のデバイス容量は当社の制御基板で動作させた時の場合です、動作させる
基板のメモリ容量等により増減します。
1_4.特殊機能
①ワードデバイスのビット指定
例) D10.4 ワードレジスタ10のビット4を指定
②ビットデバイスのワードデバイス指定
例) K4X0の時はX0からXFの16点指定
K4 の指定範囲 16 点③インデックスレジスタ修飾
例)MOV K3 Z4 ;Z4に3を代入
MOV K4 1000Z4 ;D1003に4を代入
F E D C B A 9 8 7 6 5 4 3 2 1 0
1_5.ラダープログラム作成においての注意事項
①GX−Developerで作成するプログラムは1つのみで名称はデフォルト名の
「main」を使用してください。
②ビットデバイスのワードデバイス指定でビットデバイスの指定を16で割り切れる値
を指定してください。
例)Xデバイスの時 X0、X10、X20、X30、
・・・・・
Mデバイスの時 M0、M16、M32、M48、
・・・・・
2.LtC実行ファイル(mldcnv.exe)説明
LtC はコマンドライン実行ファイルです、以下の様に実行して下さい。
>mdlcnv [input_file] [output_file]
input_file:三菱製ラダープロジェクトの「MAIN.wpg」を指定して下さい。
¥[プロジェクト名]¥Resource¥Pou¥Body¥MAIN.wpg
output_file:ladder
input_file で指定したラダーファイル(MAIN.wpg)をコンバータして C ファイル
(ladder.c)を自動生成します。
※LtCで対応していないコマンド(LtC 対応コマンド一覧を参照)を実行時にはアウト
プットファイル(ladder.c)の該当する行に/* ERROR */を出力します。
3.三菱版LtC Soft対応コマンド一覧
三菱版LtC Softが対応している命令を記します。
3_1.接点命令
No 命令記号 シンボル 内容 1 LD ├┤├─ a接点演算開始 2 LDI ├┤/├─ b接点演算開始 3 AND ├┤├─┤├─ a接点直列接続 4 ANDI ├┤/├─┤/├─ b接点直列接続 5 OR ├┤├┬─ a接点並列接続 ├┤├┘ 6 ORI ├┤/├┬─ b接点並列接続 ├┤/├┘ 7 LDP ├┤↑├─ 立ち上がりパルス演算開始 8 LDF ├┤↓├─ 立ち下がりパルス演算開始 9 ANDP ├┤├─┤↑├─ 立ち上がりパルス直列接続 10 ANDF ├┤├─┤↓├─ 立ち下がりパルス直列接続 11 ORP ├┤ ├┬─ 立ち上がりパルス並列接続 ├┤↑├┘ 12 ORF ├┤ ├┬─ 立ち下がりパルス並列接続 ├┤↓├┘3_2.結合命令
13 ANB ├┤├┬─┬┤├ 回路ブロック直列接続 ├┤├┘ └┤├ 14 ORB ├┬┤├─┤├┬─ 回路ブロック並列接続 ├┴┤├─┤├┘ 15 MPS ├──┬──── 演算結果プッシュ ├──── └──── 16 MRD ├──┬──── 演算結果読み出し ├──── └──── 17 MPP ├──┬──── 演算結果ポップ ├──── └────3_3.出力命令
18 OUT ├┤├──< >┤ アウト命令 19 OUT T ├┤├──< >┤ タイマ 20 OUTH T ├┤├──< >┤ 高速タイマ 21 OUT C ├┤├──< >┤ カウンタ 22 SET ├┤├─[SET ①]┤ デバイスのセット 23 RST ├┤├─[RST ①]┤ デバイスのリセット 24 PLS ├┤├─[PLS ①]┤ 立ち上がり出力 25 PLF ├┤├─[PLF ①]┤ 立ち下がり出力3_4.シフト命令
26 SFT(P) ├┤├─[SFT ①]┤ ビットデバイスシフト3_5.マスタコントロール命令
27 MC ├┤├─[MC n ①]┤ マスタコントロールセット 28 MCR ├┤├─[MCR n]┤ マスタコントロールリセット3_6.終了命令
29 END ├───[END]┤ シーケンスプログラム終了3_7.BIN16ビットデータ比較演算命令
30 = ├[= ① ②]───┤ ①=② のとき導通状態 31 <> ├[<> ① ②]──┤ ①<>② のとき導通状態 32 > ├[> ① ②]───┤ ①>② のとき導通状態 33 <= ├[<= ① ②]──┤ ①<=② のとき導通状態 34 < ├[< ① ②]───┤ ①<② のとき導通状態 35 >= ├[>= ① ②]──┤ ①>=② のとき導通状態3_8.BIN32ビットデータ比較演算命令
36 D= ├[D= ① ②]───┤ (①、①+1)=(②、②+1)のとき導通状態 37 D<> ├[D<> ① ②]──┤ (①、①+1)<>(②、②+1)のとき導通状態 38 D> ├[D> ① ②]───┤ (①、①+1)>(②、②+1)のとき導通状態 39 D<= ├[D<= ① ②]──┤ (①、①+1)<=(②、②+1)のとき導通状態 40 D< ├[D< ① ②]───┤ (①、①+1)<(②、②+1)のとき導通状態 41 D>= ├[D>= ① ②]──┤ (①、①+1)>=(②、②+1)のとき導通状態3_9.ブロックデータ比較演算命令
42 BKCMP(P)= ├[BKCMP= ① ② ③ n]─┤ ①からn点分のデータと②からn点分のデータを①ワード単位で比較し、比較結果を③で 43 BKCMP(P)<> ├[BKCMP<> ① ② ③ n]─┤ 指定したビットデバイスからn点分に格納する。 44 BKCMP(P)> ├[BKCMP> ① ② ③ n]─┤ 45 BKCMP(P)<= ├[BKCMP<= ① ② ③ n]─┤ 46 BKCMP(P)< ├[BKCMP< ① ② ③ n]─┤ 47 BKCMP(P)>= ├[BKCMP>= ① ② ③ n]─┤3_10.BIN算術演算命令
48 +(P) ├[+ ① ②]───┤ ②+① → ② 49 +(P) ├[+ ① ② ③]───┤ ①+② → ③ 50 −(P) ├[− ① ②]───┤ ②−① → ② 51 −(P) ├[− ① ② ③]───┤ ①−② → ③ 52 D+(P) ├[D+ ① ②]───┤ (②+1、②)+(①+1、①) → (②+1、②) 53 D+(P) ├[D+ ① ② ③]───┤ (①+1、①)+(②+1、②) → (③+1、③) 54 D−(P) ├[D− ① ②]───┤ (②+1、②)−(①+1、①) → (②+1、②) 55 D−(P) ├[D− ① ② ③]───┤ (②+1、②)−(①+1、①) → (③+1、③) 56 *(P) ├[* ① ② ③]───┤ ①*② → ③ 57 /(P) ├[/ ① ② ③]───┤ ①/② → 商③、余り③+1 58 D*(P) ├[D* ① ② ③]───┤ (①+1、①)*(②+1、②) → (③+1、③) 59 D/(P) ├[D/ ① ② ③]───┤ (①+1、①)/(②+1、②) → 商(③+1、③)、余り(③+3、③+2) 注意.計算結果は 32bit になります。32bit 以上の桁データは破棄になります。3_11.BCD算術演算命令
60 B+(P) ├[B+ ① ②]───┤ ②+① → ② 61 B+(P) ├[B+ ① ② ③]───┤ ①+② → ③ 62 B−(P) ├[B− ① ②]───┤ ②−① → ② 63 B−(P) ├[B− ① ② ③]───┤ ①−② → ③ 64 DB+(P) ├[DB+ ① ②]───┤ (②+1、②)+(①+1、①) → (②+1、②) 65 DB+(P) ├[DB+ ① ② ③]───┤ (①+1、①)+(②+1、②) → (③+1、③) 66 DB−(P) ├[DB− ① ②]───┤ (②+1、②)−(①+1、①) → (②+1、②) 67 DB−(P) ├[DB− ① ② ③]───┤ (②+1、②)−(①+1、①) → (③+1、③) 68 B*(P) ├[B* ① ② ③]───┤ ①*② → ③ 69 B/(P) ├[B/ ① ② ③]───┤ ①/② → 商③、余り③+13_12.ブロック算術演算命令
70 BK+(P) ├[BK+ ① ② ③ n]───┤ ①からn点分のデータと②からn点分のデータを一括で加算する。 71 BK−(P) ├[BK− ① ② ③ n]───┤ ①からn点分のデータと②からn点分のデータを一括で減算する。3_13.インクリメント/デクリメント命令
72 INC(P) ├[INC ①]───┤ ①+1 → ① 73 DEC(P) ├[DEC ①]───┤ ①−1 → ① 74 DINC(P) ├[DINC ①]───┤ (①+1、①)+1 → (①+1、①) 75 DDEC(P) ├[DDEC ①]───┤ (①+1、①)−1 → (①+1、①)3_14.BCD変換命令
76 BCD(P) ├[BCD ① ②]───┤ ① →BCD変換→ ② 《①はBINの0∼9999》 77 DBCD(P) ├[DBCD ① ②]───┤ (①+1、①) →BCD変換→ (②+1、②) 《①はBINの0∼99999999》3_15.BIN変換命令
78 BIN(P) ├[BIN ① ②]───┤ ① →BIN変換→ ② 《①はBCDの0∼9999》 79 DBIN(P) ├[DBIN ① ②]───┤ (①+1、①) →BIN変換→ (②+1、②) 《①はBCDの0∼99999999》3_16.2の補数変換命令
80 NEG(P) ├[NEG ①]───┤ → ① 《①はBINデータ》 81 DNEG(P) ├[DNEG ①]───┤3_17.ブロック変換命令
82 BKBCD(P) ├[BKBCD ① ② n]───┤ ①からn点分のBINデータを一括でBCDデータに変換し②以降に格納する。 83 BKBIN(P) ├[BKBIN ① ② n]───┤ ①からn点分のBCDデータを一括でBINデータに変換し②以降に格納する。3_18.データ転送命令
84 MOV(P) ├[MOV ① ②]───┤ ① → ② 85 DMOV(P) ├[DMOV ① ②]───┤ (①+1、①) → (②+1、②) 86 CML(P) ├[CML ① ②]───┤ → ② 87 DCML(P) ├[DCML ① ②]───┤ 88 BMOV(P) ├[BMOV ① ② n]───┤ 89 FMOV(P) ├[FMOV ① ② n]───┤ ① n ② ① ② n (①+1、①) → (②+1、②) ① ((①+1、①) → (①+1、①) 《①+1、①BINデータ》) ①90 XCH(P) ├[XCH ① ②]───┤ ① ←→ ② 91 DXCH(P) ├[DXCH ① ②]───┤ (①+1、①) ←→ (②+1、②) 92 BXCH(P) ├[BXCH ① ②]───┤ 93 SWAP(P) ├[SWAP ① ②]───┤
3_19.論理演算命令
94 WAND(P) ├[WAND ① ②]───┤ ② ∧ ① → ② 95 WAND(P) ├[WAND ① ② ③]───┤ ① ∧ ② → ③ 96 DWAND(P) ├[DWAND ① ②]───┤ (②+1、②) ∧ (①+1、①) → (②+1、②) 97 DWAND(P) ├[DWAND ① ② ③]───┤ (①+1、①) ∧ (②+1、②) → (③+1、③) 98 BKAND(P) ├[BKAND ① ② ③ n]───┤ 99 WOR(P) ├[WOR ① ②]───┤ ② ∨ ① → ② 100 WOR(P) ├[WOR ① ② ③]───┤ ① ∨ ② → ③ 101 DWOR(P) ├[DWOR ① ②]───┤ (②+1、②) ∨ (①+1、①) → (②+1、②) 102 DWOR(P) ├[DWOR ① ② ③]───┤ (①+1、①) ∨ (②+1、②) → (③+1、③) 103 BKOR(P) ├[BKOR ① ② ③ n]───┤ 104 WXOR(P) ├[WXOR ① ②]───┤ ② ∀ ① → ② 105 WXOR(P) ├[WXOR ① ② ③]───┤ ① ∀ ② → ③ 106 DWXOR(P) ├[DWXOR ① ②]───┤ (②+1、②) ∀ (①+1、①) → (②+1、②) 107 DWXOR(P) ├[DWXOR ① ② ③]───┤ (①+1、①) ∀ (②+1、②) → (③+1、③) 108 BKXOR(P) ├[BKXOR ① ② ③ n]───┤ 109 WXNR(P) ├[WXNR ① ②]───┤ 110 WXNR(P) ├[WXNR ① ② ③]───┤ 111 DWXNR(P) ├[DWXNR ① ②]───┤ 112 DWXNR(P) ├[DWXNR ① ② ③]───┤ 113 BKXNR(P) ├[BKXNR ① ② ③ n]───┤ ① ② ③ n ① ② ③ n ∀ ∀ ① ② ③ n ∨ ① ② ③ n ∧ ①b15 b8 b7 b0 ② b15 b8 b7 b0 (①+1、①) ∀ (②+1、②) → (③+1、③) (②+1、②) ∀ (①+1、①) → (②+1、②) ① ∀ ② → ③ ② ∀ ① → ② ① ② n3_20.ローテーション命令
114 ROR(P) ├[ROR ① n]───┤ 右へnビットローテーション 115 RCR(P) ├[RCR ① n]───┤ 右へnビットローテーション 116 ROL(P) ├[ROL ① n]───┤ 左へnビットローテーション 117 RCL(P) ├[RCL ① n]───┤ 左へnビットローテーション 118 DROR(P) ├[DROR ① n]───┤ 右へnビットローテーション 119 DRCR(P) ├[DRCR ① n]───┤ 右へnビットローテーション 120 DROL(P) ├[DROL ① n]───┤ 左へnビットローテーション 121 DRCL(P) ├[DRCL ① n]───┤ 左へnビットローテーション3_21.シフト命令
122 SFR(P) ├[SFR ① n]───┤ 123 SFL(P) ├[SFL ① n]───┤ 124 BSFR(P) ├[BSFR ① n]───┤ 0 b15 ① bn b0 b15 b0 0∼0 SM700 b15 b0 SM700 b15 bn b0 ① b31 ①+1 b16 b15 ① b0 SM700 b31 ①+1 b16 b15 ① b0 SM700 b31 ①+1 b16 b15 ① b0 SM700 b31 ①+1 b16 b15 ① b0 SM700 b15 ① b0 SM700 b15 ① b0 SM700 b15 ① b0 SM700 b15 ① b0 SM700 ① n SM700125 BSFL(P) ├[BSFL ① n]───┤ 0 126 DSFR(P) ├[DSFR ① n]───┤ 0 127 DSFL(P) ├[DSFL ① n]───┤ 0