Accell | MPC-816 Series | MPC-816 シリーズ

MPC-816 Programing tutorials
ACCEL
Last update May 25,2005
(MPC-816KF)
このチュートリアルはMPC-816 プログラム開発の概要です。各製品・コマンドについての
詳細は 「MPC-816 ユーザーズマニュアル」「製品別マニュアル」「総合カタログ」をご覧
下さい。最新情報はホームページ http://www.accelmpc.co.jp をご覧下さい。
1
目次
MPC-816 ファミリ ............................................................................................................... 5
プログラム開発環境 ............................................................................................................. 6
ハードウェア..................................................................................................................... 6
アプリケーション ............................................................................................................. 6
接続 ...................................................................................................................................... 7
USB-RS (MPC用USB<->シリアルコンバータ)..................................................................... 9
P版とZ版 ............................................................................................................................ 10
P版 .................................................................................................................................. 10
Z版(保守用) ..................................................................................................................... 10
Z版P版変更方法 .............................................................................................................. 10
コマンド入力 ...................................................................................................................... 11
I/Oチェック ........................................................................................................................ 12
コマンドによるチェック................................................................................................. 12
I/Oチェッカによるチェック ........................................................................................... 12
プログラム.......................................................................................................................... 13
コメント.......................................................................................................................... 13
ラベル ............................................................................................................................. 13
制御文でのラベル記述時の注意 ...................................................................................... 13
サブルーチン................................................................................................................... 14
繰り返しの例................................................................................................................... 14
サブルーチン、FOR~NEXT使用上の注意 .................................................................... 15
プログラム編集................................................................................................................... 16
LISTの表示..................................................................................................................... 16
行の挿入.......................................................................................................................... 17
行の削除.......................................................................................................................... 17
その他のキー操作 ........................................................................................................... 18
プログラムの保存・読み込み ............................................................................................. 19
保存................................................................................................................................. 19
読み込み.......................................................................................................................... 20
オフライン作成 ............................................................................................................... 20
印刷................................................................................................................................. 20
I/O制御 ...............................................................................................................................21
ビット処理 ...................................................................................................................... 21
バイト処理 ...................................................................................................................... 21
2
変数・配列変数・メモリーI/O ........................................................................................... 22
変数................................................................................................................................. 22
配列変数.......................................................................................................................... 22
メモリーI/O .................................................................................................................... 22
演算 .................................................................................................................................... 23
パルス発生.......................................................................................................................... 24
初期設定.......................................................................................................................... 24
ティーチモードでの動作確認.......................................................................................... 24
加減速と最高スピードの設定.......................................................................................... 25
絶対座標移動................................................................................................................... 25
相対座標移動................................................................................................................... 26
パレタイズ ...................................................................................................................... 26
停止・状態確認 ............................................................................................................... 26
MPG-303 の軸構成 ......................................................................................................... 27
パルス発生形態 ............................................................................................................... 28
マルチタスク ...................................................................................................................... 30
マルチタスク関係のコマンド.......................................................................................... 30
パルス発生中のタスクの終了.......................................................................................... 31
MPG-303 のタスク引き当て........................................................................................... 31
RS-232C通信 ...................................................................................................................... 32
主要コマンド................................................................................................................... 32
デバッグ ............................................................................................................................. 33
基本形(実行・停止・確認) .............................................................................................. 33
PRINTを仕込む .............................................................................................................. 33
サブルーチン単位で実行................................................................................................. 34
自動実行中の停止個所の確認方法 .................................................................................. 34
特殊なプログラム ........................................................................................................... 35
タッチパネル ...................................................................................................................... 36
小型LCDモジュールの接続 ................................................................................................ 37
分類別コマンドリスト........................................................................................................ 38
I/O関係............................................................................................................................ 38
LCD関係 ......................................................................................................................... 38
MIF-816AD関係 ............................................................................................................. 39
MPG-301 関係 ................................................................................................................ 39
RS-232C関係 .................................................................................................................. 39
ソフトカウンタ関係........................................................................................................ 39
3
タイマ関係 ...................................................................................................................... 39
タスク操作関係 ............................................................................................................... 40
デバッグ関係................................................................................................................... 40
パルス関係 ...................................................................................................................... 40
ファイル関係................................................................................................................... 41
メンテナンス関係 ........................................................................................................... 41
演算関係.......................................................................................................................... 42
制御文関係 ...................................................................................................................... 42
文字列関係 ...................................................................................................................... 42
編集関係.......................................................................................................................... 42
4
MPC-816ファミリ
MPC-816 シリーズの製品概要です。
MPC-816
メイン CPU
ユーザ RS-232C 1CH、16 入力、8 出力
MIF-816
拡張 I/F ボード
16 入力、8 出力、パルス(4 軸)
MIF-816AD
拡張 I/F ボード
12 入力、8 出力、パルス(3 軸)、A/D 3、D/A 1
MIO-816
I/O ボード
16 入力、8 出力 (MAX11 枚)
MIO-248
I/O ボード
8 入力、24 出力
MPG-303
パルスボード
4 軸(2 軸+2 軸) 最高速約 60Kpps MAX3 枚
MPG-301
パルスボード
1 軸 最高速 1Mpps MAX4 枚
MBK-816
タッチパネル I/F
デジタル社 GP シリーズダイレクトアクセス
RACK-SET(A)
ラック
4 スロット
RACK-SET(B)
ラック
8 スロット
RACK-SET(C)
ラック
16 スロット
MPC-SET(EX)
セット商品
MPC-816、MIF-816、ケース
MPC-SET(303)
セット商品
MPC-816、MPG-303、ケース
MPC-816XC
セット商品
MPC-816、ケース
MPC-SET(A)
セット商品
RACK-SET(A)と MPC,MIF のセット
MPC-SET(B)
セット商品
RACK-SET(B)と MPC,MIF のセット
MPC-SET(C)
セット商品
RACK-SET(C)と MPC,MIF のセット
例えば
MPC-SET(A) &
MIO-816 & MPG-303 で 48 入力 24 出力 パルス 4 軸 RS-232C 1ch の
コントローラとなります。
その他
USB-RS
USB⇔RS-232C コンバータ
RS-232C の無い PC でプログラムできます
5
プログラム開発環境
ハードウェア
・ パソコン
Windows パソコン。RS-232C 1ch が必要
(RS-232C ポートが無い PC は USB-RS を使用します)
・ プログラミングケーブル
MPC とパソコンを RS-232C 接続
(USB-RS 使用時には不要です)
アプリケーション
・ MPC の開発環境は SetupDisk でインストールされます。
・ 最初のインストールは必ず Setupdisk で行ってください。その後のアップデートは実行
ファイル(*.EXE)の差し替えで Ok です。
・ 標準セットアップフォルダは C:¥Program Files¥ACCEL です。
主なアプリケーション
FTMW
ターミナルソフト
MPC と接続して編集・デバッグ、パソコンからの読み込み・保存を行います。
MPC の開発には必須のアプリです。
(ファイル名は「FTMW32.EXE」ですが、本文では「FTMW」としています)
SYSLDW
システムローダ
MPC のバージョンアップ時に用います。フラッシュ ROM 内のシステムデータを書き
換えます。
MPCED
オフラインエディタ
MPC 専用のオフラインエディタです。制御文・ラベル・コメントを色分けします。
MVC
MPC コマンドビューワ
簡易コマンドリファレンスです。FTMW、MPCED からは F1 キーでヘルプになりま
す。コマンドにカーソルを合わせて F1 を押してください。単体でも使えます。
ABC 順・分類別コマンド検索ができます。(本文「分類別コマンドリスト」の項参照)
6
接続
MPC とパソコンをプログラミングケーブルで接続し、MPC の電源を入れます。
MPC-816
FTMW
J1
Programming Cable
(USB-RS)
1
1
CD
TX0 2
2
RXD
RX0 3
3
TXD
SG
4
4
DTR
MAN 5
5
SG
P5
6
DSR
7
RTS
8
CTS
9
CI
SG
ACCEL CORP.
MPG-916F
CEP-080
6
DC24V 1
2
電源
GND 3
FG 4
Windows PC
Computer
COM Port
(D-SUB 9)
FTMW 起動後、「FTMW32 設定」で COM ポート番号をあわせ、「MPC-816 接続」
を押します。
FTMW バージョン番号
MPC-816 と接続
FTMW 終了
エディタ起動
ショートカット
「スタート」メニュー
「プログラム」
「ACCEL」グループ
「FTMW32」
システムローダ起動
FTMW 動作設定
カレント COM ポート
7
編集画面にオープニングメッセージとプロンプトが表示されれば正常接続。
オープニングメッセージ
プロンプト
オープニングメッセージの意味
MPC バージョン番号
P版
プログラム容量 (2044 ステップ)
TNYFSC(R) Rev-3.53s[VER-PmaX2044]
Copyright(C)by ACCEL Corp/BcSoft
[300p MPC-816K MPG MODE5|6]K8bc
>
最大ポイント数(300 点)
MPG-303 パルスモードは 5 または 6
プロンプト
8
USB-RS (MPC用USB<->シリアルコンバータ)
USB は有るが RS-232C が無い..というパソコンには「USB-RS」をお使いください。
MPC PRG ポート
USB-RS2
USB ポート
・
・
・
Windows 2000/XP
FTMW Ver6.36 以降
USB デバイスドライバをインストール
FTMW は USB-RS に引き当てられた COM ポートをボタン1つで検出します。
※USB-RS についての詳細は「USB-RS 製品別マニュアル」をご覧下さい。
9
P版とZ版
MPC-816 には P 版と Z 版があり、パルス発生形態、データサイズ、タスク数などに
違いがあります。
出荷時の標準状態は P 版です。
Z 版は保守等で旧製品のプログラム継承のために用意しています。
本文は P 版について解説しています。
P版
・ 特徴
パルス発生
ポイント数
変数・定数
タスク数
プログラム容量
MPG-303、MPG-301、MIF-816、MPC-816
300 点
3 バイト長
12 本
2044 行
Z版(保守用)
・ 特徴
パルス発生
MIF-816
ポイント数
255 点
変数・定数
2 バイト長
タスク数
8本
プログラム容量
1729 行
・ 以前の MPC では Z 版でしか MIF パルス発生ができませんでしたが、現在では P 版も
できます。過去の Z 版専用コマンドを使用したプログラムを再利用する場合のみお使い
ください。
Z版P版変更方法
・ V_SWAP コマンドを実行し電源を再投入します。そして MPCINIT と ERASE を実行
して初期化してください。
TNYFSC(R) Rev-2.60a[VER-Zmx1729]
Copyright(C)by ACCEL CORP/BC-SOFT
[255point MPC-816K MODE1~4]K8bc
>V_SWAP
TNYFSC(R) Rev-3.53s[VER-PmaX2044]
Copyright(C)by ACCEL Corp/BcSoft
[300p MPC-816K MPG MODE5|6]K8bc
>MPCINIT
>ERASE
*
←Z 版
←この後電源再投入
←P 版
←SRAM 初期化
←FROM 初期化
10
コマンド入力
プロンプトの後にコマンドを入力し Enter すると、その場で実行します。これをダイ
レクトコマンド実行といいます。
殆どのコマンドはダイレクトに実行することもプログラムに記述することもできます
が、メンテナンス・編集関係などでダイレクトコマンドでしか使えないものや制御文
などでプログラムにしか書けないものもあります。
両方で使える
ON 0
OFF 0
PRINT A
MOVE
など
>ON 0<Enter>
>GOTO 100<Enter>
>10 MPCINIT<Enter>
ダイレクトのみ
LIST
MPCINIT
ERASE
RUN
など
プログラムのみ
GOTO
GOSUB
IF ~
FOR ~ NEXT
など
←ダイレクト実行
10 ON 0<Enter> とすればプログラム
←ダイレクト実行しても何もおこらない
←このコマンドをプログラムするとプログラムが消える!
※本文中の<Enter>は、パソコンのキーボードの Enter キー押下を表します。
11
I/Oチェック
コマンドによるチェック
・ 基本はコマンドによる 1 ビット単位のチェックです。
>ON 0
>OFF 0
>PR SW(0)
1
>PRX HPT(0)
&H05
←出力 0 をオン
←出力 0 をオフ
←入力 0 の状態 (PR は PRINT の省略型です)
←0=オフ、1=オン
←MPG-303 原点センサーポート
←SX1、SY1 がオン
I/Oチェッカによるチェック
・ まとめて見るなら [F8] I/O Checker で I/O チェッカを起動。
・ >IOC<enter>
としても I/O チェッカが起動します。
・ MPG-303 の原点入力ポートは IOC では見ることはできません。
12
プログラム
文番号を付けて記述するとプログラムになります。Enter キーを押して確定(MPC へ送
信)です。???が出たらエラーです。文法に誤りが無いか確認して再入力して下さい。
10 '**comment**<Enter>
20 *LOOP<Enter>
30 ON 0<Enter>
40 TIME 50<Enter>
50 OFF 0<Enter>
60 GOTO *LOOP<Enter>
70 A=A+B+C<Enter>
???
←コメント文
←ラベル
←制御文
←上の演算はできません
コメント
・ ‘(シングルコーテーション)の後ろにコメントが書けます。
・ プログラムの後ろにも書くことは出来ますが、1 行 13 文字以下の制約が有り実用的で
はありません。
・ コメントも 1 行になります。日本語は使えません。
ラベル
・ 先頭に*が付いたものはラベルです。日本語、スペースは使えません。
制御文でのラベル記述時の注意
・ GOTO、GOSUB、IF THEN などで飛び先にラベルを指定した場合、そのラベルが無
いと???になります(下記①)。事前にラベルを作成する(下記②)、または仮に文番号で記
述しておいて後でラベル行を書き足します(下記③)。
①
>10 GOTO *JOB1
???
②
>100 *JOB1
10 GOTO *JOB1
③
>10 GOTO 100
100 *JOB1
LIST 0
10
GOTO *JOB1
100
*JOB1
←ラベル *JOB1 はまだ無いので???
←先にラベル *JOB1 を作る
←その後 GOTO を記述
←仮に文番号で記述
←その文番号でラベルを作成
←自動的にラベルに変更される
13
サブルーチン
・ GOSUB でジャンプして RETURN で戻る構文をサブルーチンといいます。
・ 仕事単位でサブルーチン化して、それをメインルーチンから呼ぶようにするとプログラ
ムが読み易くなります。
サブルーチン
メインルーチン
100 GOSUB *HOME
110 GOSUB *CLAMP
120 GOSUB *UNCLAMP
2000
2010
2020
2030
2040
'GENTEN HUKKI
*HOME
SHOM 2,8,100
HOME &H05,200,200
RETURN
3000
3010
3020
3030
3040
'TSUKAMU
*CLAMP
ON 0
OFF 1
RETURN
4000
4010
4020
4030
4040
'HANASU
*UNCLAMP
ON 1
OFF 0
RETURN
繰り返しの例
・ 次の①と②の実行結果は同じです。プログラムには何通りもの方法があります。
①
10
20
30
40
50
60
70
80
90
>RUN
256
②
10
20
30
40
50
>RUN
256
C=0
*LOOP
C=C+1
IF C>255 THEN *NEXT_JOB
OUT C,0
TIME 5
GOTO *LOOP
*NEXT_JOB
PRINT C
14
FOR C=0 TO 255
OUT C,0
TIME 5
NEXT C
PRINT C
サブルーチン、FOR~NEXT使用上の注意
・ サブルーチン、FOR~NEXT のネストには注意してください。RETURN や NEXT が
無く GOSUB・FOR だけを重ねると!! Stack Overflow エラーになります(プログラムの
作り方により異なりますが十数回)。
・ サブルーチン・FOR~NEXT の中から GOTO・IF THEN で飛び出したり、サブルーチ
ンからサブルーチンを呼ぶなどの場合は特に注意してください。必ず、サブルーチンは
RETURNで、FORはNEXTで閉じていなければなりません。
IF SW(0)=1 GOSUB *JOB
*JOB
IF SW(1)=1 THEN *ATTI
RETURN
RETURN で戻らない場合がある
*ATTI
ON 1
(どこかへ行っちゃう)
FOR I=1 TO 10
IF SW(1)=1 THEN *ATTI
NEXT I
NEXT に到達しない場合がある
*ATTI
ON 1
(どこかへ行っちゃう)
・ 自動実行中に !! Stack Overflow になると MPC-816 の赤 LED が点滅します。
15
プログラム編集
プログラムを編集する際、頻繁に行う操作を解説します。
LISTの表示
・ 最も頻繁に使用するのが LIST コマンドです。
■書式
LIST [n,m]
n:開始文番号或は開始ラベル 0≦n≦32766
m:表示行数 1≦m≦127
・ LIST だけでも実行できます(下記①)。その場合は前回の続が表示されます。
・ 第 1 パラメータに表示開始位置を文番号またはラベルで指定できます(下記②③)。
・ 第 2 パラメータに表示する行数を指定できます(下記④)。
・ LIST 0 とすると最初から表示します(下記⑤)。
①
>LIST
10
IF SW(0)=0 THEN *JOB1
20
IF SW(0)=1 THEN *JOB2
30
*JOB1
(以下略)
④
>LIST *JOB1 2
30
*JOB1
40
ON 0
>
⑤
>LIST 0
10
IF SW(0)=0 THEN *JOB1
20
IF SW(0)=1 THEN *JOB2
30
*JOB1
40
ON 0
②
>LIST 100
100
ON 1
110
TIME 50
120
OFF 1
(以下略)
③
>LIST *JOB1
30
*JOB1
40
ON 0
50
TIME 10
(以下略)
16
行の挿入
10
20
30
40
*LOOP
ON 0
OFF 0
GOTO *LOOP
10
20
30
40
25 TIME
*LOOP
ON 0
OFF 0
GOTO *LOOP
50<Enter>
ステップ 30 にカーソルを持っていき Ctrl+N
挿入したい文番号を付けて記述
10
20
25
30
40
*LOOP
ON 0
TIME 50<Enter>
OFF 0
GOTO *LOOP
LIST
10
20
25
30
40
*LOOP
ON 0
TIME 50
OFF 0
GOTO *LOOP
LIST
10
20
30
40
*LOOP
ON 0
OFF 0
GOTO *LOOP
LIST
10
20
30
40
*LOOP
ON 0
OFF 0
GOTO *LOOP
行の削除
LIST
10
20
25
30
40
*LOOP
ON 0
TIME 50
OFF 0
GOTO *LOOP
LIST 0
10
*LOOP
20
ON 0
25
TIME 50
30
OFF 0
40
GOTO *LOOP
25<Enter>
消したい行にカーソルを持っていき Ctrl+Y
消したい文の番号だけを入力
17
その他のキー操作
18
プログラムの保存・読み込み
保存
・ F9 「プログラム保存」でパソコンに保存します。
・ プログラム中の GOTO、GOSUB やFORKなどの制御文に全てラベルを使っている場
合は文番号無しで保存できます。文番号無しで保存した方がオフラインでの編集が楽に
なります(推奨)。
・ 制御文に文番号を使っている場合はメッセージを表示して文番号有りモードで保存し
ます。
19
読み込み
・ F9 「プログラム読込」でパソコンからプログラムを読み込みます。
・ 文番号の有無は自動判別し、文番号の無いプログラムは 10 間隔でナンバリングします。
オフライン作成
・ FTMW は MPC 内のデータを直接操作するもので、接続していないと使うことはでき
ませんが、プログラムはオフラインで作成することができます。
・ エディタをご用意ください。MPCED は MPC 専用ですが、汎用のエディタやワープロ
でも使えます。その場合、プログラムはテキストデータ、拡張子を”FSC”として保存し
て下さい。
・ プログラムのエラーチェックは MPC に読み込み、実行するまではわかりません。
印刷
・ FTMW には印刷機能はありません。パソコンに保存したファイルを MPCED などのエ
ディタやワープロソフトで印刷してください。
20
I/O制御
I/O はビット単位、またはバイト単位(バンク)で扱うことができます。
ビットでは 0 か 1 の状態しかありませんが、バンクでは 0~255(&HFF)のデータを持ち
ます。主に、ビット操作はソレノイドバルブ・リレー・スイッチなどの機器の単体制
御、バイト操作は DSW 読み込みやシーケンサなどの外部機器とのデータ授受に利用さ
れます。
バンクとはバイト単位の表現です。入出力 0~7 がバンク 0、8~15 がバンク 1、16~23
がバンク 2 というようになります
ビット処理
ON 0
OFF 1
WAIT SW(0)=1
IF SW(1)=1 THEN *LABEL
ON -1
WAIT SW(-2)=1
←出力 0 をオン
←出力 1 をオフ
←入力 0 が 1(オン)になるまで待つ
←条件分岐
←マイナス数字はメモリ I/O
←
〃
バイト処理
OUT 170 0
A=IN(0)
OUT A B
WAIT IN(1)=255
IF IN(2)=&H0F THEN *LABEL
OUT &HFF -1
WAIT IN(-1)=&HAA
←10 進数 170 をバンク 0 に出力。
←入力バンク 0 の値を変数 A に入れます。
←A の値をバンク B にパラレル出力
←条件待ち
←条件分岐
←マイナス数字はメモリ I/O
←
〃
21
変数・配列変数・メモリーI/O
MPC-816 は多くの変数・配列変数・メモリーI/O を持っており、名称・個数は固定さ
れています。
変数・配列変数は 3 バイト長整数(約±800 万)です。
変数・配列変数は主に演算結果・カウント値などのデータ格納やタスク間のインター
ロックに、メモリーI/O はタスク間のインターロックに利用されます。
殆どのコマンド・関数には定数・変数・配列変数を与えることができます。
メモリ I/O は通常の I/O と同様に ON、OFF、OUT、SW、IN でビット操作・バイト
操作ができます。
これらは全てグローバルです(ローカル変数はありません)
変数
・ A~Z のアルファベット 1 文字とそれに 0~9 を付けたもの (A~Z、A0~A9 … Z0~Z9)。
現在の変数の内容は VLIST コマンドで一覧表示します。
>VLIST
A0~9,A: 0 0 0 0 0: 0 0 0 0 0: 5
(中略)
L0~9,L: 0 0 0 0 0: 0 0 0 0 0: 0
ok
←”Q”キーで表示終了。その他のキーで継続
配列変数
・ AR 配列
AR(0)~AR(31)
・ M 配列
M(0)~M(5999)
・ ポイントデータ
X(1)~X(300)、Y(1)~Y(300)、U(1)~U(300) 、Z(1)~Z(300)
ポイントデータも一種の配列変数です。ポイントデータは FTMW でパソコンに保
存・読み込みできます。
現在の点データの内容は PLS コマンドで一覧表示します。
>PLS
P(1): 0 0 0 0
(中略)
P(10): 0 0 0 0
ok
←”Q”キーで表示終了。その他のキーで継続
メモリーI/O
・-1~-128(ビット)
マイナスの付けるとメモリーI/O になります。
22
演算
+(足す)、-(引く)、*(掛ける)、/(割る)
%(余り)、^(論理積)、|(論理和)、x(排他的論理和)
全て 3 バイト長整数です。小数点以下切り捨てです。
>A=5
>B=A/2
>PR B
2
多項演算はできません。
A=B+C
A=(B+C)/D
10 IF A+1=10 THEN 100
←OK
←NG
←NG
23
パルス発生
MPG-303 を使ったパルス発生の例です。
XY 直行座標型ロボットをイメージして解説します。
初期設定
・ MPG-303 を搭載しただけでは正常にパルスは出ません。少なくとも下記の設定を行う
必要があります。
・ 必ず最初に PG、次に MODE を設定してください(他は順不同)
・ ダイレクトコマンドでも可能ですが、最終的にプログラムに反映させてください。
・ 設定例
PG 1
MODE 5
ACCEL 1000
FEED 0
OVRUN 0
AXIS 1
D45 0
MPG-303 ボード選択。MPG-303 はショートピンでアドレス設定
パルス発生モード。5 はステップ、6 はサーボモータ向き
最高速・加減速設定
使用速度設定
オーバーラン設定(0 は解除)
JOG 軸設定(JOG コマンド使わなければ 1)
動作形態指定(0 は直線補間)
ティーチモードでの動作確認
・ パルス出力の最も簡単な確認方法はティーチモードです。FTMW 画面で T<Enter>で
ティーチングモードに入ります
カレント PG 番号
各軸座標値
インチング量
PG 1#1(X,Y,Z,U) 9000 -1000 0 0 [XYZ,U] 200 200
・ インチング量(1 回のパルス出力数)は 0~3 のキーで切り替えます。もし、この部分に変
な数値が入っていたら 0~3 のどれかのキーを押してください。この値は SET コマンド
で変更できます。
初期値 0:100 パルス/ 1:200 パルス / 2:400 パルス / 3:800 パルス
・ X,x,Y,y,U,u,Z,z キーで各軸が動作します。
・ P キーでポイント番号入力。教示する点番号を入力して下さい。
・ Tab キーで PG が切り替わります。
・ Q キーでティーチングモードから抜けます。
24
加減速と最高スピードの設定
・ 最高速と加減速の設定は ACCEL コマンド、パルス発生時の最高速度の選択は FEED
で行います。
・ ACCEL は加減速テーブル作成のため最大数秒を要する演算を行いますが、FEED は瞬
時に終了します。ですから通常、ACCEL はプログラム先頭で1回だけ初期設定し、稼
動中のスピード変更は FEED で行います。
ACCEL n.m.i と FEED の関係
n
FEED 0
i
FEED 15
m
絶対座標移動
・ 定数・変数・点データで絶対座標を指定して移動します。ロボット的な動作向きです。
●座標を指定して移動 (移動前は X=300,Y=200 だったとして)
MOVE 1000,600
Y
600
変数、配列変数も使えます
X1=1000
Y1=600
MOVE X1 Y1
200
300
X
1000
Y
P(2)
●点データを使った移動 (移動前は P(1)だったとして)
MOVE P(2)
プログラムで点データを設定することもできます
SETP 2,1000,600
MOVE P(2)
P(1)
X
25
相対座標移動
・ 現在位置からの距離を指定して移動します。定ピッチ移動などで利用します。
●距離(パルス数)を指定して移動 (移動前は X=300,Y=200 だったとして)
RMOV 700,400
Y
変数、配列変数も使えます
X1=700
Y1=400
RMOV X1 Y1
600
400
200
700
300
1000
X
パレタイズ
・ パレット間の移動に利用します。ティーチングした 3 点とマトリックス数から各点
PL(C)を算出します。
P(11)
PL(1)
P(12)
PL(2)
PL(3)
PL(4)
P(1)
PL(5)
PL(6)
PL(9) PL(10)
PL(7)
PL(11)
PL(8)
PALET 11,12,13
MTRX 4,3
'
FOR C=1 TO 12
MOVE PL(C)
MOVE P(1)
NEXT C
"パレット宣言 使用するポイントを指定
"
〃
パレットのマトリックス数
"パレットの PL(1)~PL(12)へ移動
"点 1 へ移動
PL(12)
P(13)
停止・状態確認
・ パルス発生を途中停止するには STOP コマンド使います。
・ パルス発生状態を調べるのは BSY 関数です。
26
MPG-303の軸構成
・ MPG-303 は 1 枚につき 4 軸のパルス出力ポートを有しますが、全軸を同時に動かした
り、単軸非同期制御はできません。
基本構成は XY と UZ の排他 2 軸+2 軸の直線補間または単軸移動で、X 軸が動作中に
その他の軸を開始・停止するということはできません。
・ 同期的な動作(X 開始・停止→Y 開始・停止→U 開始・停止)は Ok です。
・ MPG-303 の使用数を決定する場合、軸の組み合わせ・同期か非同期か、を考慮願いま
す。例えば、2 台の単軸エレベータを非同期制御する場合は MPG-303 が 2 枚必要です。
27
パルス発生形態
・ MPC-816 にはいくつものパルス発生方法があります。
■MPG-303
標準的なパルス発生です。単軸または 2 軸直線補間が基本です。
3 バイト長の座標は内部で管理され、相対座標移動、絶対座標移動、点移動、ティーチン
グ等のコマンドが用意されています。マルチタスクで動作します。
MPG-303F
CEP-096
ACCEL CORP.
MPG-303 から
軸数:4 軸 (XY+UZ 直線補間)
最高速度:約 60Kpps
制御 I/O:原点センサー各軸 2 点
搭載ボード数:MAX3 枚
◆コマンド
MODE,PG,ACCEL,MOVE,RMOV,HOME,STOP 等
■MPG-301
パルス発生専用 IC を搭載しています。高速パルス発生、無限パルス発生、パルスレート
途中変更、 S 字加減速 等などが可能です。 MPG-301 専用コマンドで制御します。
MPC-816 での座標値管理はありませんが MPG-301 の内部カウンタで位置管理を行えま
す。マルチタスクで動作します。
MPG-301 から
軸数:1 軸
最高速度:1Mpps
エンコーダー入力:1ch
制御 I/O:原点センサー、サーボアラーム、サーボオン等
搭載ボード数:MAX4 枚
◆コマンド
ST_REG,REG(),REG3()、CMND
CEP-070A MPG-301
ACCEL CORP.
28
■MIF-816
PG コマンドで-1 を指定すると、MIF-816 から MPG-303 に似たパルス発生が行えます。
コマンドは殆ど 303 と同等ですが、パルス発生中はマルチタスクが停止します。
Z 版のパルス発生に替わる機能です。
PLS_MIF で ZPLS、YPLS 等を MIF-816 に切り替えることも出来ます。
MIF-816 パルスポートから
◆PG –1 コマンドで
MOVE,RMOV,HOME 等の MPG-303 のコマンドでパルス発生が可能
軸数:4 軸(XY+UZ 直線補間)
座標:3 バイト長。
OVRUN:IN24~31 に対して入力停止機能を追加
STOP:サポート無し
MODE:無効
SHOM X,Y,s / SHMZ X,Y,s:s は PPS 単位で設定 1~2000pps
JOG,PULSE コマンド:使えません
MIF-816KF
CEP-095
ACCEL CORP.
◆PLS_MIF コマンドで
ZPLS,YPLS,WPLS,VPLS
■MPC-816 単体
BUS コネクタ出力
MPC-816KF のバスコネクタ(J5)33~36 番ピンには 2 軸分のパルス信号が出ています。
PG –1 設定で出力します(上記 MIF-816 での PG –1 と同等)。
ZPLS、YPLS、WPLS、VPLS コマンドによるパルス発生
MPC-816 の出力ポートからパルス出力が可能です。最高速 3Kpps 程度ですが、無限パ
ルス発生、パルスレートの途中変更が可能です。マルチタスク制御が可能です。MPG-303
のような、座標値管理、加減速、HOME コマンド゙等はありません。
MPC-816KF BUS コネクタから
33 番ピン X-CW
34 番ピン X-CCW
35 番ピン Y-CW
36 番ピン Y-CCW
TTL レベル出力です。必要に応じてインターフェースして下さい。
MPC-816 I/O 出力ポートから
ACCEL CORP.
MPG-916F
CEP-080
ZPLS,YPLS,WPLS,VPLS (各コマンド 1 軸制御)
29
マルチタスク
タスク数は 12 本 (0(メイン)~11)です。
実行するとメインタスクでプログラムが走り、メインタスクから子タスクを起動しま
す。
子タスク同士の優先順位はありません。
マルチタスク関係のコマンド
・ FORK
タスクを起動します。メインタスクから子タスク、子タスクから子タスクを起動できま
す。END コマンド、他のタスクからの QUIT で終了します。実行中のタスクを FORK
すると、そのタスクは最初から再実行されます。
・ PAUSE
実行中の他のタスクを一時停止します。
・ CONT
PAUSE で一時停止中のタスクを再実行します。
・ QUIT
タスク終了
10
20
30
40
50
60
70
80
90
100
110
120
130
FORK 1,*TASK1
*LOOP
ON 0
TIME 50
OFF 0
TIME 50
GOTO *LOOP
*TASK1
ON 1
TIME 10
OFF 1
TIME 10
GOTO *TASK1
30
パルス発生中のタスクの終了
・ パルス発生中のタスクはいきなり QUIT できません。
他のタスクからパスル発生中のタスクに対して STOP コマンドを発行しパルスを停止し
ます。次に BSY 関数で停止確認を確認して、QUIT します。
MPG-303のタスク引き当て
・ MPC-303 はアドレスによって制御できるタスクが限定されています。
タスク 0(メインタスク)
PG コマンドにより選択
〃
1~3
MPG-303 #1
〃
4~7
MPG-303 #2
〃
8~11
MPG-303 #3
・ メインタスクは PG コマンドで PG を切り替えて使えます。
PG #1
MODE 5
ACCEL 1000
(略)
PG #2
MODE 6
ACCEL 50000
(略)
MPG-303 #1
MPG-303 #2
・ タスク 1~3 で使われるパルスコマンドは PG#1 へ発行されます。
FORK 1,*JOB
END
*JOB
MODE 5
ACCEL 10000
(略)
MPG-303 #1 へ
MOVE 1000,1000
・ 複数のタスクから同時に同じ MPG-303 へコマンドを発行することはできません(STOP、
BSY を除く)
31
RS-232C通信
MPC-816 にはユーザーでプログラム制御可能な RS-232C ポートが 1CH あります。
パソコン、計測機器などとのデータ通信が行えます。
どのタスクでも通信できますが、複数のタスクから同時にアクセスすると正常に送
受信できません。通信タスクは 1 本に限定するべきです。
主要コマンド
・ CNFG#
通信設定
・ PRINT#
出力
・ INPUT#
入力
10
20
30
40
RUN
5678
CNFG# 4,2,2
PRINT# 123
INPUT# A
PRINT A
←ノンパリ 8 ビット 1 ストップ、XON/OFF 無し、9600bps
←123<cr><lf> と出力
←<cr>がターミネータ
←5678<cr>と受信した場合
32
デバッグ
基本形(実行・停止・確認)
・ MPC のデバッグの基本形は 実行・停止・確認 です。
例えば、実行(RUN)して装置が止まったら停止(Ctrl+A)してプログラムの停止位置から停
止原因を調べます。停止行を調べるには Ctrl+M です。
10
20
30
>RUN
ON 0
WAIT SW(0)=1
OFF 0
←実行して装置が止まったところで Ctrl+A でプログラム停止。
TASK 0 # 20
>
TASK0 20
WAIT SW(0)=1
←Ctrl+M して各タスクの停止行を確認
←タスク 0 のステップ 20 で SW(0)がオンするのを待っている。
どうして SW(0)がオンにならないか調べよう。
PRINTを仕込む
・ プログラムの必要個所に PRINT 文を仕込んで変数や I/O の状態を表示させます。
10
20
30
40
50
>RUN
1
2
C=0
*LOOP
C=C+1
PRINT C
IF C<3 THEN *LOOP
←C の値をモニタ
・ PRINT 文は STR(-1)と組み合わせて前行のコメント文も表示できます。
10
C=0
20
*LOOP
30
C=C+1
35
'COUNTER=
40
PRINT STR(-1),C
50
IF C<3 THEN *LOOP
>RUN
COUNTER= 1
COUNTER= 2
←コメント文(日本語不可)
←前行と C の値を表示
33
サブルーチン単位で実行
・ RUN にサプルーチンを指定するとサブルーチン単位で実行します。仕事単位でサブルーチン
化しておくと部分的なデバッグができます。
10
'
20
PG 1
30
MODE 5
40
ACCEL 5000
50
*LOOP
60
GOSUB *HOME
(中略)
90
GOTO *LOOP
100
'--------110
*HOME
120
SHOM 2,8,100
130
HOME 5,100,100
140
RETURN
(以下略)
>RUN *HOME
NO State!!
←*HOME サブルーチンだけ実行=HOME 動作だけの確認
←終了
自動実行中の停止個所の確認方法
・ 自動実行中に停止した場合、電源を切らずにそのままケーブルを差込み FTMW と接続
してください。
<<装置が止まった!どうしたこったい?。プログラムケーブルを差し込み FTMW と接続>>
TNYFSC(R) Rev-3.53s[VER-PmaX2044]
Copyright(C)by ACCEL Corp/BcSoft
[300p MPC-816K MPG MODE5|6]K8bc
←MPC と接続完了
>MON
←MON コマンドでも停止位置が判る
TASK 0 # 30
TASK 1 # 70
>
←Ctrl+M で各タスクのリストを表示
TASK0 30
WAIT SW(0)=1
←タスク 0 は SW(0)がオンになるのを待っている
TASK1 70
WAIT SW(1)=1
←タスク 1 は SW(1)がオンになるのを待っている
さて、どこが悪いのか?
>LIST 0
10
FORK 1,*JOB1
20
ON 0
30
WAIT SW(0)=1
40
OFF 0
50
END
60
*JOB1
70
WAIT SW(1)=1
80
END
34
特殊なプログラム
・ タスク 0 を END で終了すると FTMW にプロンプトが返ってきます。この状態で MPC
へコマンドを発行することが可能になり、リアルタイムで変数などのモニタ、実行位置
の確認ができるようになります。
・ 注意
・プログラム中に PRINT 表示があると表示が重なります。
・プログラムを変更すると停止します。
・Ctrl+A では停止できなくなります。Ctrl+]で停止してください。
10
FORK 1,*JOB1
20
END
100
*JOB1
110
ON 0
120
TIME 50
130
OFF 0
140
TIME 50
150
GOTO *JOB1
>RUN
>
TASK1 140
TIME 50
>
TASK1 120
TIME 50
>PR SW(0)
0
>
TASK 0 # 32767 TASK 1 # 140
>
←タスク 0 を END で終わらしてしまう
←実行
←プロンプトが返ってくる。タスク 1 は動いている
←Crtl+M で実行位置を表示
←Crtl+M で実行位置を表示
←PRINT 文で I/O 状態や変数を確認できる
←Ctrl+]で停止
←32767 は END 終了の意味
35
タッチパネル
MBK-816 は 、 松 下 電 工 MEWNET-FP シ リ ー ズ の PC 間 双 方 向 通 信
「MEWTOCOL-COM」に準拠したプロトコルを実装し、㈱デジタル製タッチパネル
GP シリーズの「ダイレクトアクセス方式」に対応しています。
データエリア 702 ワード、I/O エリア 98 ワードのメモリ空間をダイレクトに読み書き
することができます。
プログラムでは通信を一切意識することなく、通常の I/O コマンドでタッチパネルを制
御できます。
ACCEL CORP.
CEP-072A MBK-816
MPC-816
RS-422
38400bps
MBK-816
36
小型LCDモジュールの接続
市販小型 LCD モジュールを接続して簡単な文字表示ができます。
接続方法は、MIF-816KF パルスポートに接続①、MPC-816KF バスコネクタに接続②
の 2 通りです。
LCD のサイズは 20 文字 4 行または 16 文字 2 行です。
専用コマンドで制御します。
①
LCD モジュール
MPC-816KF
MPG-916F
CEP-080
ACCEL CORP.
MIF-816KF
CEP-095
ACCEL CORP.
用途:
MPC-SET(EX)または
ラックを使用した構成
MIF-816KF
②
LCD モジュール
用途:
MPC-816KF 単体使用
ACCEL CORP.
MPG-916F
CEP-080
MPC-816KF
37
分類別コマンドリスト
I/O関係
BL_AND
BL_OR
CSW
!CSW
#DEFO
#DEFS
DEF_RST
ERR_ON
HCSW
HPT
HSW
!HSW
HWS0
HWS1
IN
MIO
O_IN
O_SW
OFF
OFF_AND
OFF_OR
ON
ON_AND
ON_OR
OUT
SETIO
SW
!SW
WS0
WS1
・・条件出力・論理積ビットロード
・・条件出力・論理和ビットロード
・・エッジ検出
・・エッジ検出/論理反転
・・出力ポートのシンボル定義
・・入力ポートのシンボル定義
・・リセット入力の指定
・・プログラム停止時のエラー表示
・・CSW(n)の高速読み取り
・・MPG-303 原点入力の読み込み
・・SW(n)の高速読みとり
・・HSW(n)の論理反転
・・入力タイミング待ち関数
・・入力タイミング待ち関数
・・パラレル入力
・・MIO-816 拡張
・・出力状態の取得
・・出力状態の取得
・・ビット単位出力オフ
・・条件出力・論理積 OFF
・・条件出力・論理和 OFF
・・ビット単位出力オン
・・条件出力・論理積 ON
・・条件出力・論理和 ON
・・パラレル出力
・・出力初期化
・・ビット単位入力
・・SW の論理反転
・・タイムアウト付入力
・・タイムアウト付入力
LCD関係
LOC
PRC
PRD
PRS
・・カーソル位置指定/初期化
・・キャラクタ表示
・・数値表示
・・文字列表示
38
MIF-816AD関係
AD
DA
・・AD 変換
・・DA 出力
MPG-301関係
CMND
REG
REG3
ST_REG
・・X3202 コマンド実行
・・X3202 レジスタ読込み
・・X3202 レジスタ読込み
・・X3202 レジスタ書込
RS-232C関係
CNFG#
E
FIND#
GET#
GET
GETN#
INPUT
INPUT#
PRINT#
PUT
PUT#
PUTS#
RS
SKIP#
SKPSP#
TST#
・・外部 RS-232C の初期化
・・CH1 のエラー検出
・・文字の検索/RS-232C CH1
・・1文字入力関数/CH1
・・1文字入力関数/CH0
・・数字列の読み込み/CH1
・・CH0 からの数値入力
・・CH1 からの数値入力
・・CH1 からの通信出力
・・CH0 からの 1 文字出力
・・CH1 からの 1 文字出力
・・CH1 からの文字列出力
・・受信キャラクタ数
・・文字コード検索
・・スペースコードの検索
・・キャラクタの分類
ソフトカウンタ関係
IO_CNT
OUT_CNT
OUT_CSET
・・カウント
・・比較出力付きカウンタ
・・カウンタ設定
タイマ関係
SYS
TIME
TMOUT
・・システムクロック読込
・・ディレイタイマー
・・タイムアウト設定
39
タスク操作関係
CONT
#DI
#EI
FORK
PAUSE
QUIT
RSV
TASK
・・休止プログラムの再実行
・・マルチタスクの停止
・・マルチタスクの再開
・・タスクの起動
・・タスクの一時停止
・・タスクの停止
・・セマフォ
・・タスクの状態監視
デバッグ関係
BKCNT
BRK
CNT
MON
PR
PRINT
PRX
TOFF
TON
VLIST
・・BRK コマンドのパスカウント
・・プログラムの一時停止
・・プログラムの再実行
・・停止行番号の参照
・・PRINT の短縮形
・・数値データの表示
・・ヘキサ表現
・・トレースモード解除
・・トレースモード設定
・・変数の一覧表示
パルス関係
ACCEL
AXIS
BSY
D45
FEDD
FEDH
FEDZ
FEED
HOM
HOME
HOMZ
JMPZ
JOG
JUMP
MODE
MOVE
MOVZ
MTRX
MTRX1
OVRUN
P
PALET
PALET1
PG
PGS
・・パルス出力の加減速設定
・・単軸パルス出力ポート選択
・・MPG-303 の動作状態関数
・・移動モードの設定
・・ゲートモーション下降スピード
・・HOME 時のスピード設定
・・Z 軸のスピード設定
・・MOVE、RMOV のスピード設定
・・原点へ移動
・・XY 原点復帰
・・ZU 原点復帰
・・ロボット移動命令
・・ジョグ移動
・・ゲートモーション
・・パルス発生モード
・・XY 絶対移動
・・ZU 絶対移動
・・パレット分割量
・・パレット分割量
・・非常停止
・・点データ
・・パレット設定
・・パレット設定
・・PG ボード選択
・・PG エラーの読み取り
40
PL
PL1
PL1X
PL1Y
PLS
PLS_MIF
PLX
PLY
PULSE
RMOV
RMVZ
SET
SETP
SETPOS
SFDL
SHMZ
SHOM
SHRD
STOP
STPZU
T
TEACH
U
URANG
VPLS
WPLS
X
XRANG
Y
YPLS
YRANG
Z
ZPLS
ZRANG
・・パレット点データ
・・パレット点データ
・・パレット点の X 成分
・・パレット点の Y 成分
・・点データリスト
・・パルスポート変更
・・パレット点の X 成分
・・パレット点の Y 成分
・・パルス出力
・・XY 相対座標移動
・・ZU 相対座標移動
・・JOG 量設定
・・点データの設定
・・現在位置の設定
・・Z 軸スピード設定
・・原点復帰設定
・・原点復帰設定
・・原点センサー比較回数
・・MPG-303 パルス停止
・・点データ設定
・・TEACH の短縮形
・・ティーチモード
・・U 軸座標取り出し
・・JOG 領域設定
・・拡張パルス出力
・・拡張パルス出力
・・X 軸座標取り出し
・・JOG 領域設定
・・Y 座標取り出し
・・拡張パルス出力
・・JOG 領域設定
・・Z 軸座標取り出し
・・拡張パルス出力
・・JOG 領域設定
ファイル関係
LP
SP
・・点データ取り出し
・・点データ保存
メンテナンス関係
ERASE
FWRITE
KEY
MPCINIT
SLOW
V_SWAP
VER
・・MPC-816 初期化
・・フラッシュ ROM 書込
・・フラッシュ ROM ロック
・・MPC-816 初期化
・・送出スピード設定
・・版切り替え
・・バージョン表示
41
演算関係
AR
ATAN
M
SETVAR
SFTL
SFTR
SQR
SQRT
・・配列変数
・・アークタンジェント
・・配列変数
・・変数の初期化
・・AR(n)の左シフト
・・AR(n)の右シフト
・・平方根の算出
・・平方根
制御文関係
A_START
DEC
ELSE_GOSUB
ELSE_THEN
END
FOR
GOSUB
GOTO
IF
NEXT
RETURN
RUN
THEN
WAIT
・・オンライン時の自動実行
・・繰り返し制御文
・・IF 文での ELSE 制御
・・IF 文での ELSE 制御
・・プログラム終了
・・繰り返しループ
・・サブルーチンコール
・・指定の文番号へジャンプ
・・条件分岐
・・繰り返しループ
・・サブルーチンリターン
・・プログラム実行
・・条件分岐
・・条件待ち
文字列関係
STR
・・文字列の呼出
編集関係
DELETE
FREE
LIST
LSCNT
NEW
NEWP
REM
RENUM
TAIL
・・ブロック単位で削除
・・プログラム残量表示
・・プログラムリスト表示
・・標準リスト行数設定
・・プログラムクリア
・・点データクリア
・・コメント
・・文番号の編集
・・プログラム最終番号表示
--- End Of Document ---
42
Download PDF