MPC−816に関するFAQ その 1 Last Update 98/10/13 INDEX 00100

MPC−816に関するFAQ その 1
Last Update 98/10/13
■INDEX
00100
NO State エラー
00200
プログラムロード
00300
OVRUN
00400
MOVE
00500
JOG
00600
シーケンサ
00700
メモリー I/O
00800
チェックサムエラー
00900
RENUM
01000
X(),Y(),U(),Z()
01200
01300
01400
01500
TIME
M()
プログラム化け
プログラムロード
01600
01700
01800
01900
02000
02100
02200
02300
02400
02500
02600
02700
02800
02900
03000
03100
03200
03300
03400
03500
03600
03700
03800
03900
04000
04100
04200
04300
04400
不思議な動作
自動実行
ケーブル
BRK
インターフェース
BOOST,AND,OR
改版
タッチパナル
変数変換
RS-232C
Out of Range
パルス発生
パルス発生
#DEFS,#DEFO
メモリー I/O
RS-232C
RS-232C
ON_AND
FTM(98DOS)
パルス発生
改版
パルス発生
プログラムロード
版変更
PULSE
GPY
BUS
ご案内
パルス発生
RUNしてNO Stateエラー
【PZ】MPCに読み込むとプログラムの歯抜けを起こす..について
Z版OVRUNでのハングアップについて
【Z】コマンドパラメーター省略時の不具合
【P】JOGコマンドが止まらない件についての実験
【出力】シーケンサーI/Oとの接続
【P】電源 OFF 時のメモリー I/O の保持は?
【PZ】チェックサムエラーの原因
【Z】 Rev-2.30 で RENUM すると NoState エラーになる
【P】点配列に数値が入らない
【P】点配列に数値が入らない その2
【P,Z】TIME を使って時間計測
【P】大きい配列で演算出来ない
【FROM 版】LIST で見るプログラムが化けている
【P,Z】ロード中の???(DEF 定義に起因するもの)
【P,Z】ロード中の???(VER(版)の違いによるもの)
【P,Z】ロード中の???(RAMエリア化けによるもの)
【P,Z】ロード中の???(その他)
【FROM 版】FTM は接続できるが、動作不安定
【FROM 版】自動実行で暴走?
MPC-DOS/V プログラムケーブル
【P,Z】BRKを入れるとプログラム停止、CNTするとDisable
【P,Z】TTL,CMOS 入力機器と MPC 出力の接続
【P】基本クロックの変更 他
【Z】Rev2.30d リセットで MODE が変わる
【P】Digital社表示器の使用例
【P】10進数→ASCII
【P,Z】RS−232CポートのBufferサイズ
【P,Z】RUNで Out of Range になる
【Z】MOVE でY軸のパルスが出ない
【P,Z】TTL・ラインドライバー出力の Z 相を MPC の原点入力に接続する I/F
【P,Z】#DEFS と#DEFO に同一名を定義したら?。メモリー I/O の定義。
【P】メモリー I/O 数。(マニュアルの訂正)
【P,Z】RS-232C を使ったPC・計測器とのデータ授受
【P,Z】少数点を含む正/負数値データの入力
【P】ON_AND のパラメーター、I/O 定義
【P,Z】FTM(98DOS)のシステムディスク(FD)のファイル
【P】ステップモータードライバーの入力と MPC 出力の接続
【P,Z】MIO-240E、O_SW()対応、MIO-248K 対応 (970724)
【Z】RMOV で 4 パルスの出力ができないという件についての調査 (未解決)(970730)
【P,Z】フラッシュ ROM 版にプログラムを読み込んだのに消えた?(970731)
【P,Z】現在の出荷時設定と変更方法(970731)
【Z】 PULSEコマンド裏機能の停止条件(970731)
【P,Z】GPY−67の動作確認【参考資料】 (970806)
【P,Z】 MPC-816X(FROM版)とMIF-816Zの組み合わせ使用について (970808)
8255製造中止にともなうボード変更ならびに機能仕様変更について(970821)
【P,Z】新しい MPC に Z 版のプログラムをロードして実行すると PG エラー(970821)
04500
04600
04700
04800
04900
05000
05100
05200
05300
05400
05500
05600
05700
05800
05900
06000
06100
06200
06300
06400
06500
06600
06700
06800
06900
07000
07100
07200
07300
07400
07500
FTM
IN(),OUT,BOOST
パルス発生
RS-232C
改版
FTMW32
FTM(98DOS)
パルス発生
MPC-NET
パルス発生
パルス発生
MPC-816X
MPC-816X
MPC-816X
MPC-816X
MPC-816X
MPC-816X
MPC-816X
MIF-816,MPG-303
MPC-816X
MPC-816X
MPC-816X
MPG-303
MPC-816X
MPC-816
MPC-816K
MPC-816X
MPC-816X
MPC-816X
MPC-816K
MPC-816K
FTM31 installation summarily(970822)
【P,Z】プログラム実行速度(970826)
【P】MPG-303 の赤 LED が消えない(970826)
FTMW32 と接続して電源を入れても MPC のオープニング MSG が出ない(970827)
【P,Z】8255 レスボード対応、MIO-240E BUG Fix (970903)
IBM Think Pad 535 で FTMW32 と MPC がリンク出来ない(970912)
Win95 の DOS 窓で実行すると「RS ドライバが組み込まれていません」(970917)
MPC−816X(P版)のパルス発生範囲(970918)
MPC-NET の異常を調べる方法(971003)
EX(Z 版)のボードをラックに入れ替えて MPG-303 からパルス出力したい(971003)
MPC−816へのMPG−303の直結2連装が可能か(971111)
M()配列を初期化する方法(971113)
現在位置の単軸変更(971114)
RACK−Cでクロスト―ク(971202)
改版 p,z m403→m404(971202)
改版 z 2.30e(971218)
改版 P:3.30e/m405 , Z:2.30f/m405 (980108)
RS―232Cの送受信例 (980122)
TTL入力のモータードライバーに接続する方法 (980217)
MPC−816のリアルタイムデバック (980219)
MPCの交換手順 (980219)
子タスクの状態の違いによる実行スピードの測定実験 (980224)
MPG停止状態の判定方法 (980302)
RS−232CユーザーチャンネルのXON/XOFF制御について (980303)
MS−EXCELでポイントデータを扱う (980309)
改版 P3.50b,Z2.50 / モニタ K8a6。V_SWAP 追加、BUG Fix 等(980317)
MPCINIT の変数の初期化の有無(980319)
最大プログラム行数と文番号(980319)
MPC−816の演算(980324)
改版 Z2.50a / モニタ K8a7。Z 版 BugFix 等(980407)
改版 P3.50c Z2.50b / モニタ K8a8。Ctrl+A で出力 Reset 他(980413)
「MPC−816に関するFAQ その2」へ続く
00100
NO State エラー
RUNしてNO Stateエラー
①飛び先が無い分岐
10 GOTO 1000
20 GOSUB 2000
30 FORK 1,3000
40 ON 0
50 OFF 0
>RUN
10
NO State!!
20
NO State!!
30
NO State!!
???
>
←飛び先が無い
②GOSUB文が無いRETURN
10
GOTO *PASS
20
*PASS
30
RETURN
>RUN
NO State!!
③FORが無いNEXT
10
ON I
20
NEXT I
>RUN
NO State!!
④構文の誤り
[エディターで作成したプログラム]
IF C3<>4 AND C3<>5 THEN *ER
*ER
←816 では多項式・演算はできません( “AND”という演算子も無い)
[上のプログラムを LOAD してもエラーにはならないが、内容は変わる]
>LIST
10
IF C3<>4 THEN C3
20
*ER
>RUN
10
NO State!!
???
00200
プログラムロード
MPCに読み込むとプログラムの歯抜けを起こす..について
MS−EXCELで読み込み保存したプログラムをMPCに読み込むと行が欠落することがあります。
EXCELで保存時、テキストファイルは通常カンマ(,)で区切られた行はCSVファイルとみなしダブルコーテ
ーション(")で囲みます①。
EXCELデフォルト設定の画面上ではダブルコーテーションは見えませが、保存したファイルにはしっかりダブ
ルコーテーションが付いています②。
EXCELの主目的は表計算ですから、文章にさまざまな加工をしてしまうことがあります。
プログラムの編集にはEXCELは使わないで下さい。エディターが無い場合はMS−WORDや一太郎などのワ
ープロソフトを用いて下さい。
①EXCELで見たとき
140 SETIO &H7F
150 LSCNT 22
160 MODE 5
170 SETVAR A0,Q,0
180 SETVAR S0,Z,0
190 '--200 PG 1
210 ACCEL 8500,1000,100
220 TMOUT 50
②EXCELで保存したファイル。
(エディターやDOSのTYPEコマンドでみて下さい(該当行は強調してあります))
140 SETIO &H7F
150 LSCNT 22
160 MODE 5
"170 SETVAR A0,Q,0"
A0,Q,0"
"180 SETVAR S0
S0,Z,0"
,Z,0"
190 '--200 PG 1
"210 ACCEL 8500,1000,100"
220 TMOUT 50
00300
OVRUN
Z版OVRUNでのハングアップについて
MPC−816Z版でプログラム最初のOVRUN 0などのパルスコマンドでハングアップするときは、全ての
パルスコマンドに先行してMODEが実行されているか確認して下さい。
もしOVRUN、ACCELなどのパルスコマンドの前にMODE設定が無い場合、RAMのMODEパラメータ
が破壊されると、次回プログラム実行時に最初のパルスコマンドで停止する可能性があります。
根本的な原因はノイズ等によるRAM化けです。パルス・RS−232Cの接続・I/F・引き回しを確認して下
さい。
00400
MOVE
【Z】コ
コマンドパラメーター省略時の不具合
MPC−816Z版MOVEコマンド等の第3パラメーターを省略すると動かなかったり不特定な動作をするこ
とがあります。
これは内部的な問題に起因するバグです。
具体的には、省略時には第3パラメーターの値が収められるHLレジスタの操作しないので値が不定となるためで
す(以前になにを行ったかでHLレジスタは変化します)。
ユーザーズマニュアルに省略可能の記述がある場合でもプログラムにはキッチリ記述して下さい。
(Z版に限らず)
00500
JOG
【P】J
JOGコマンドが止まらない件についての実験
■その①
下記のプログラムでは 40 JOG 50,2 のパルス発生が止まらなくなることがります。
原因はSTOP処理がされないまま 同一MPGに60 JOG 50、1 を実行しているからです。
これはMPGがパルス発生中にパルスコマンドを実行する、いわゆるダブルアクセスという状態でMPCでは禁止
事項です。
JOGコマンドの他、ACCEL、MOVE、RMOV、FEED、HPT()などPGに関わるコマンド・関数
で同様です。
ダブルアクセスはマルチタスク状態で、複数のタスクで同一MPGを制御しようとする場合に陥りがちなバグです
が、JOGコマンドは一般的なMOVE、RMOVなどと仕様が異なりコマンド実行中でもプログラムは停止しな
いのでシングルタスクでも発生してしまいます。ご注意下さい。
10
20
30
40
50
60
70
>RUN
PG 1
ACCEL 2000,200,100
XRANG 8000000,-8000000
JOG 50,2
TIME 50
JOG 50,1
STOP 1
←プロンプトが返って来ないので CTRL+A で停止
TASK 0 # 60
>
←ここでMPG−303の赤LEDは点いたままになります。
TASK0 60
JOG 50,1
←CTRL+M(Windows版ではF9)で停止行表示
>RUN
←MPGがハングアップしているので動作しません。CTRL+A で停止。
TASK 0 # 20
※MPG−303のハングアップ状態を回復するにはパワーオンリセットします。
停止行の確認方法
停止行は、ターミナルソフトを接続してCTRL+Aで表示される行番号で確認できます。
自動運転中のハングアップでもそのままターミナルを接続してCTRL+Aです。その後CTRL+Mで各
タスクの停止行リストを1行ずつ表示します。
■その②
STOP直後のパルスコマンド(MOVE、P(0)など)も禁止です。
100
110
120
130
135
140
150
WAIT SW(-1)=1
JOG 50,3
WAIT SW(-1)=0
STOP 1
PRINT X(0),Y(0)
TIME 10
PRINT P(0)
←STOP直後の現在点取得は禁止
←タイマーを入れて下さい。
00600
シーケンサ
【出力】シ
シーケンサーI/Oとの接続
共通のI/O駆動用電源を持つMPCとシーケンサーを接続し、MPCだけ電源を切るとMPCの出力がonと同
じ状態となります。
これはMPCに使用しているTRアレイにクランプダイオードか内蔵されているためです。
これを回避するにはTRアレイのCOMピンを切断してください。
TD62064AP
TD62004AP
1、8番ピン
9番ピン
(MPC、MIF)
(MIO)
00700
メモリー I/O
【P】電源 OFF
OFF 時のメモリー
メモリー I/O
I/O の保持は?
メモリーI/Oは電源をOn時にRESETされます。
>OUT 255,-1
>PRINT IN(-1)
255
>
TNYFSC(R) Rev-3.22o [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300point MPG-303(PG 1 3)MODE5│6]
>PRINT IN(-1)
0
←電源再投入
961029
00800
チェックサムエラー
【PZ】チ
チェックサムエラーの原因
MPC−816の赤LEDの点灯の殆どはチェックサムエラー(RAM化け)によるものです。
エラー発生時にターミナルソフトと接続すると「Check-SUM Err ! Please "FIX 0"」のメセージが表示されます。
下記はその原因と対策例です。
◇◇◇◇◇◇
電源投入時にエラーになる
パワーサプライの容量不足、電源をリレー等で開閉、大きな容量負荷と同時起動 等
稼働中にエラーになる
モーター、RS−232C機器からのノイズ、漏れ電流の混入
調整中にエラーになる
プログラムケーブル接続時にRS−232Cポートへの静電気の印加。
パソコン等
RS-232C 機器
RS-ISO
MPC-816
RS-232C
接点(コンタクタ,リレー)
で開閉しない
パワーサプライ
(SSR を使用)
容量に余裕のある物を
短く
ROM 化
電源
SG
FG
MIF-816
MIO-816
MIF のパルスポートも
MPG と同様です
SG・FG は一点アース
サージキラー付き
リレー,ソレノイドバルブ,電磁カンター
I/O
PIF-422
MPG-303
MPC と同一 DC24V
結束しない
電磁ブレーキ
パルスポート
モータードライバー
パルスモーター
短く
原点入力
原点センサー
動力線と信号線は
結束,平行配線しない
片側接地
保安アース
対策
【RS−ISO】
RS−232Cポートの保護はRS−ISOです。
CEP−021E(96年6月リリース)から内蔵され、不要となりました。
【PIF−422】
MIF−816、MPG−303のパスルポートの保護はPIF−422です。
フォトカプラーにより絶縁、RS−422仕様の差動ドライブに変換します。
【ROM化】
プログラムのプロテクトはROM化です。
CEP−021F(96年11月リリース VER3.30)からフラッシュROMによるオンボードROM化に対応しました。そ
れ以前の機種ではEPROM、FROM(ACCEL 製フラッシュ ROM & フラッシュ ROM ライター)でのROM化です。
■チェックサムエラーからの復帰方法
MPCINITコマンドで初期化します。(MPCINIT はプログラム,ポイントデータ等を全てクリアーします)
■その他のエラー原
エラー原因
EX03の初期不良と思われるもの。
※フラッシュROM版の816XにはRS−ISOの相当の回路が組み込まれています。
※CEP−009E(97/5月)以降のMPG−303にはPIF−422相当の回路が組み込まれています。
00900
RENUM
【Z】 Rev-2.3
Rev-2.30
0 で RENUM
RENUM すると NoState
NoState エラーに
エラーになる
TNYFSC(R) Rev-2.30 [VER-Zmx1729]
Copyright(C)by ACCEL CORP/BC-SOFT
[255point MIF-816Zs-task MODE1 4]
文番号1が無いとエラーになる(CHGREVのなごり)
>RENUM
NO State!!
>1 '
RENUM
←1があるとOk
961120
01000
X(),Y(),U(),Z()
【 P】 点 配 列 に 数 値 が 入 ら な い
X(n)=m など点配列に直接データをロードできない。
バグ 改版 Rev−3.30c
961204
【 P】 点 配 列 に 数 値 が 入 ら な い そ の 2
X(m)=X(n)+100 などの演算が出来ない。
バグ 改版 Rev−3.30d
961210
01200
TIME
【P,Z】
P,Z】TIME
TIME を使って時間計測
下記はSW(0)がONしたらタスク1を起動してタイマーカウントをしています。
ストップウォッチ(手操作)計測では下記の場合30.2∼30.3秒となりました。
この程度のプログラムではコンスタントに精度を得られると思いますが、タスク数の多い複雑なプログラムになる
と補正など必要かもしれません。
10
20
30
40
50
60
70
80
90
100
110
120
130
140
>RUN
Time=
>
WAIT SW(0)=0
WAIT SW(0)=1
FORK 1,*TIMER
WAIT SW(0)=0
QUIT 1
'Time=
PRINT STR(-1),T
END
*TIMER
T=0
*TIMERLP1
TIME 10
T=T+1
GOTO *TIMERLP1
301
←タイマータスクを起動
←タイマータスク停止
←タイマータスク
←ストップウォッチでは30.2∼30.3秒
961205
01300
M()
【 P】 大 き い 配 列 で 演 算 出 来 な い
I=M(n)でnが大きくなるとロードできない。
このバグは P 版初期からあったらしいが、実際に大きな数値で使っている人がいないので発覚しなかったようだ。
→改版 3.30e
961210
01400
プログラム化け
【FROM
FROM 版】LIST
LIST で見るプログラムが
プログラムが化けている
【原因】もとはP版のMPCで、Z版に変更後の初期化をしていない。
TNYFSC(R) Rev-2.30b [VER-Zmx1729]
Copyright(C)by ACCEL CORP/BC-SOFT
[255point MIF-816Zs-task MODE1 4]
>LIST
20
30
'
40
' <<<<<<<<<<<
50
'
60
' MK-210
70
'
PROGRAM
80
'
MPC-816
90
'
100
' PROGRAM
110
'
NAME
120
' 210Z_01.FSC
130
'
140
' 1996.03.15
150
'
160
' <<<<<<<<<<<
170
'
180
TIME 10
190
1
←本当は FIX 1
200
'
(中略)
1560
*INI_0B
1570
ON 3
1580
IF HSW(9)=1 THEN 1610
1590
IF HSW(10)=1 THEN 1610
25662
C9pmC;pmC=pmC?p H c
1593
TEACH
8369
CSW( =7,>7,&H30C2,X(A0), 5,35,t5, 8,z,!SW(o3),
1,:1,│2,!SW(7),66,P7,W8,N1,)0,,A0,P(A0),Z(A0),A0
,n1,
21502
XROM c9,Q0,B9,-137566, 4,:7,PL( 8),z,!SW(o3),
1,:1,│2,!SW(7),66,P7,W8,Q0,)0,,A0,P(A0),Z(A0),A0
,n1,
26110
$/MK?x7B$/yf│B$/mCgp
W()7),%3,-13811,X0, 5,35,t5, 8,z,!SW(o3),
(以下略)
****************************************************************
【実験】
P版でプログラムをロードしておいて、Z版に変更し、初期化無しでLISTを表示
5
SETIO &H007F
6
1
←ここは FIX 1 だった
10
AR(1)=1
20
AR(2)=2
30
AR(3)=4
(以下略)
01500
プログラムロード
【P,Z】
P,Z】ロード中
ロード中の???(DEF
???(DEF 定義に起因するもの)
MPCオンラインで開発したプログラムをDISKに保存して、別のMPCに移植した時、#DEFO、#DEF
Sがプログラム後方にあると???エラーになります。
MPCとオンラインで編集すると#DEFO、#DEFS文を入力した時点で、その定義データは記憶され、それ
以前に入力したI/O番号は自動的に文字列へ変更されますが、移植先のMPCにはその定義データが無いのでL
OAD中のI/O定義文字列を処理できません。
>10 ON 0
20 OFF 0
30 END
40 #DEFO SOL0 0
LIST
10
ON SOL0
20
OFF SOL0
30
END
40
#DEFO SOL0 0
←10,20 行を入力したあとで入力
←自動的に変更されます。
←
〃
それをDISKに保存します。保存したプログラムには定義された文字列がそのまま書かれています。
ON SOL0
OFF SOL0
END
#DEFO SOL0 0
それを再びMPCへ読み込みます。
MPCはプログラムを先頭より順番に読み込みながら定義などを解釈しますので、このプログラムの様にI/O定
義が後ろにあるプログラムでは"SOL0"などの文字が理解出来ずにエラーになります。
読み込み時はNEWコマンドが実行されますから、読み出したMPCへ再読み込みする場合にも同様のことがおこ
ります。
??? 10
??? 20
>LIST
30
40
>
ON SOL0
OFF SOL0
←???を消して再入力すれば有効になります(少数なら出来るでしょうが...)
END
#DEFO SOL0 0
#DEFO,#DEFSはプ
プログラム先頭部分に記述して下さい。
A=0 など変数の初期化は実行時に有効ですからサブルーチンとして後部に置いても構いません。
#DEFO SOL0 0
ON SOL0
OFF SOL0
END
【P,Z】
P,Z】ロード中
ロード中の???(
???(VER(版)の違いによるもの)
MPC−816X(フラッシュ ROM)にはP版とZ版があります。これらには共通でないコマンドがあるため、版の違
うMPCで作成されたプログラムをLOADすると???エラーになることがあります。
例)PG、MOVE など
使用前に版の確認を行って下さい。版名はFTM接続時またはVERコマンドで確認します。
VER
TNYFSC(R) Rev-2.30c [VER-Zmx1729]
←2.3xxZ版
TNYFSC(R) Rev-3.30e [VER-PmaX2044]
←3.3xxP版
P,Z版の入れ替えは専用ソフト「システムローダー」で、MPCシステムデータを入れ替えます。
(フラッシュROM版ではCHGREVコマンドは使えません)
【P,Z】
P,Z】ロード中
ロード中の???(
???(RAMエリア化けによるもの)
輸送・組み立てなどの基板取り扱い中の静電気によりRAMパラメーラーエリアが化けているとLOAD等に支障
をきたす場合があります。
使用開始前に必ずERASEとMPCINITコマンドで初期化して下さい。
>ERASE
*
>MPCINIT
【P,Z】
P,Z】ロード中
ロード中の???(
???(その他)
※希に静電気でPC側のRS−232Cポートの動作が不安定になっていることもあります。
PCの電源の再投入をしてみて下さい。
※プログラム自体がおかしくなっている場合もあります。
以前、FDに保存したプログラムをMS−EXCELで編集してロードしたところ、プログラムが消えたり、???
エラーになったという事例があります。これはEXCEL編集後にCSV形式で保存してしまったためです。CS
Vは“”を付けるので、FTMでロードできなくなります。
※MPCの具合が悪い→返送して下さい。
※FTMWの具合が悪い→はっきりした原因は判りませんが、WindowsのCOMドライバーに不具合のある
もの(初期NEC98Win3.1)やWindowsセットアップ不良による通信障害などがあります。
01600
不思議な動作
【FROM
FROM 版】FTM
FTM は接続できるが、動作不安定
【症状】
(LN410)
●F
FTM、FTMWLは問題なく接続できる。
●ERASEは少しおかしい
*ERASE (*の表示位置)
>
●MPCINITは正常に終了したかに見える
>MPCINIT
>
●I/O異常
入力状態(ON状態ではないのに1になる)
出力不動
SETIOできない
●RUNしない
【原因】
FROMリード半田付け不良
01700
自動実行
【FROM
FROM 版】自動実行で暴走?
【症状】
MPC−816Xにプログラムをロード後、プログラミングケーブルを抜き自動実行させると正常動作するが、電
源をOFF/ONすると異常動作する。その後PRGケーブルを挿しLISTを見ると途中から化けている。
ERASE、MPCINITしても直らない。
【原因と対策】
PRGをロードしただけでケーブルを抜くと、PRGはフラッシュROMには書き込まれないが、その場は正常動
作する。
パワーオンリセット時(Ctrl+A でも同様)するとFROMに入っていた旧データが呼び戻されてしまうので異常
動作となる。
ロード後は必ず「RUN」してFROM書き込みと動作確認を行う。
【?】
ERASEしても直らないのはなぜ?
970203
01800
ケーブル
MPC-DOS/V
MPC-DOS/V プログラムケーブル
●MPC−DOS/V接続ケーブル
MPC PRG ポート
DOS/V DSUB9 ピン
1
SG 1-----------------5
TX0 2-----------------2
RX0 3-----------------3
MAN 5--+
+--4
│
│
P5 6--+
+--6
FG 10
+--7
│
+--8
9
CD
GND
RXD
TXD
DTR
DSR
RTS
CTS
C1
ショップで売っているPC98−DOS/V変換アタプタを使えば
PC98のケーブルで兼用できます。
970213
01900
BRK
【P,Z】
P,Z】BRKを入れるとプログラム停止、CNTするとDisable
BRKコマンドはメインタスクだけで使えるコマンドです。
子タスクで実行すると下記の様にプログラムは停止してCNTできません。
TONコマンドもメインタスク専用です。
10
20
30
40
50
60
70
80
>RUN
Breaked
FORK 1,*LOOP1
*LOOP
TIME 10
GOTO *LOOP
*LOOP1
TIME 100
BRK
GOTO *LOOP1
←子タスクでBRK
!!
TASK 0 # 30
>CNT
Disable !!
>
TASK 1 # 70
970214
02000
インターフェース
【P,Z】
P,Z】TTL,CMOS
TTL,CMOS 入力機器と MPC
MPC 出力の接続
一般的なC−MOSのLレベル入力電圧表では、C−MOSのスレッショルドはMAX0.8V前後です。
MPCの出力トランジスタ東芝TD62064APの電気的特性でVceはMAX1.25Vとなっています。
これらのデータからでは接続は不可能なはずなのですが、Vceの実測は約0.6Vで、C−MOSの許容範囲も考
えれば不安定ながら(ボードにとっては)接続出来てしまう..という状態になります。
接続にはフォトカプラーなどのVceの小さな素子でI/Fして下さい。
次は接続の一例です。
MPC
接続機器
DC5V
DC24V
330 Ω
Vce
MAX0.4V
2K Ω
Vce MAX1.25V
順電圧
max1.3v
74HC240
TLP521 If10mA
GND
DC24V GND
※上記の特性は一例で、ICメーカー・種類により違いがあります。例えば日立のデータシートでは、HD74H
C240のVILはVcc4.5Vでmax1.35Vとなっています。
※ソレノイドや入力機器を駆動するDC24Vとロジック系の5Vは共通にするべきでは無いと思います。
DC24Vは、かなりNoisyなので、GND共通で使用した場合ロジック系が倒れる可能性が高いと思います。
また、他に接続しているPLCの出力仕様がお判りでしたら、教えて下さい(参考までに)
970303
02100
BOOST,AND,OR
【 P】 基 本 ク ロ ッ ク の 変 更 他
BOOSTは10mSEC単位のシステムクロックを1mSECにします。
ノーマルモードでTIME 10は100mSECですがBOOSTモードでは10mSECです。つまり10倍細かなTIME設定が出来るとい
うことです。
ただし、SW()やIN()関数のフィルター5mSECは変わらないので、高速対応ではHSW()、HIN()と
併用します。
また、BOOSTコマンドによりタスク数は8に減少します。これによりタスクスワップ時のオーバーヘッドを減
らします。
ただし、プログラムの実行(解釈)スピードは変わりません。
速いプログラムにするには、タスク数を極力減らして、IF文などの演算をしない(下記のAND,ORを有効利
用)などです。
実際にはこのBOOSTはあまり実績がありません。複雑なコマンドではないので問題はないと思います。また、
メカ仕様に適合できるか慎重に実験してみて下さい。
*********************************************
MPC−816Xの改版について
REV−3.22m(1995
1995 年 12 月 14 日 木曜日)
MPC−816Xは10m秒単位をタイマーのベースとしているために数m秒を扱う制御には不向きでした。これ
を克服するために以下の機能を追加します。一つはタイマー単位を1m秒として、マルチタスクの管理を8タスク
とすることにより全体的な高速化をはかるものです。もう一つは論理待ちにAND,ORコマンドを追加し複雑な
論理を一つのコマンドで実現するものです。
l BOOST
BOOSTコマンドを実行することにより、タイマー単位を1mSECマルチタスクの管理を8タスクに制限し高
速化します。リセットにより解除されますのでプログラムの先頭に書き加えて下さい。
l AND
HIN(n),mask,patn
このコマンドは以下の条件を待つコマンドです。
WAIT (HIN(0) & mask) == patn
以下の例では sw(0)-sw(3)が 0101 になるのを待ちます。
10
15
20
30
35
40
AND HIN(0),15,5
PRINT A
ON 7
WAIT HIN(0)=0
OFF 7
GOTO 10
l OR
HIN(n),mask,patn
このコマンドは以下の条件を待つコマンドです。
WAIT ((HIN(0) & mask) and patn ) != 0
以下の例では sw(0)か sw(7)のいずれかがonになるのを待ちます。
100
110
120
130
140
150
OR HIN(0),255,&H81
PRINT A
ON 6
WAIT HIN(0)=0
OFF 6
GOTO 100
970303
02200
改版
【Z】Rev2.30d リセットで
リセットで MODE
MODE が変わる
【Rev2.30c 以前での不具合内容】
プログラム中にMODE 1を設定して実行後、CTRL+A などで停止。その後TEACHモードでピッチ送りをする
と正常に動作しない(周波数が高くなりステップモーターが脱調する)
【原因】
Z版の基本設定はMODE 2です。プログラムでMODE 1を記述してもリセットでMODE 2に復元されて
しまいます。その時加減速テーブルの不整合が生じ、ティーチモード等に障害がでました。
97/03/13 で改版しました。
970313
02300
タッチパナル
【 P】 D i g i t a l 社 表 示 器 の 使 用 例
【概要】
タッチパネル(表示器)は操作パネルをシンプル、インテリジェント、フレキシブルなものにする大変便利・合理
的な機器です。
ここではMPC−816X(P版)とDigital社GP450−Eとのリンク例を紹介します。
GP450−EはELディスプレイのタッチパネルで、RS−232C、RS−422、トランジスタ出力8点等
のI/Fを備えています。
この例ではRS−232Cと8点出力でMPCとリンクします。
PC−9801
GP450−E
RS−232C
分配
CH1
AC100
CH0
AC100
I/O
J1
DC24
MPC−816X(P版)
MPCとPCはRS−232CのティーチングポートCH0で接続し、プログラムの編集を行います。
MPCとGPはRS−232CユーザーポートCH1とI/O(出力)で接続し、パネルのスイッチのON/OF
F、レジスタのデータ入力等を行います。
【出力付きのタッチパネルにしたわけ】
タッチパネルの操作によるイベントはいつ発生するか分からないため、MPCのプログラムは常にパネルの状態を
監視するLOOP構造になります。RS−232Cの入出力をループするのは応答速度、プログラムの記述性、他
のタスクの実行速度への影響、などの点から好ましくありません。主要なボタン操作はトランジスタ出力に設定し
て、レジスタの読み込みだけRS−232Cを用いることにしました。
また、MPC−816Xは複雑な文字列処理などが不得意です。タッチパネルから出力されるデータはできるだけ
数値データ、固定長にして簡単な処理ができるようにしておきます。
【RS−232Cの結線】
分配基板
MPC−816X
J1
SG
TXD
RXD
SG
MAN
P5
SG
TXD2
RXD2
NC
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
8
10
RS−ISO
PC−9801
RS−232C
1
2
3
4
5
6
1
2
3
4
5
6
7
20
FG
TXD
RXD
RTS
CTS
DSR
SG
DTR
1
2
3
4
5
6
1
2
3
4
5
7
8
20
FG
SD
RD
RS
CS
SG
CD
ER
Digital
GP450−E
RS−232C
RS−232Cは3線式のクロス結線です。MPCのCH0、CH1はJ1コネクターから分けます。
ノイズ、漏れ電流からMPCを保護するためにRS−IS0でアイソレーションしています。
GPのRS−232CコネクターにはRS−422のI/Fも一緒に配置されています。また、ピン配もPCとは
異なるので注意して下さい。
【パネル画面1】
ワーク
1
(1)
ワーク
2
(2)
ワーク
3
(4)
ワーク
4
(8)
ワーク設定
(3)
最初の画面です。ワークの選択を行います。
四つ並んでいるのがワークの種類を選択するボタンで、どれかのボタンを押すとレジスターの50(&H32)番
地の対応するビットがセットされます。例えば「ワーク1」を押すと&H01、「ワーク2」と押すと&H02、
「ワーク4」を押すと&H08といった具合です。
「ワーク設定」ボタンは出力に設定されています。ボタンを押すとMPCのSW(3)がオンし、画面2に替りま
す。
【パネル画面2】
7
8
9
4
5
6
1
2
3
0
全長
(4桁)
開始位置
(3桁)
取消
間隔
(3桁)
設定
設定開始
設定終了
スタート
(0)
ワーク
手動運転
テンキーでワークの全長、開始位置、間隔の数値を入力します。全長のデータはレジスタ30(&H1E)番地、
開始位置は31(&H1F)番地、間隔は32(&H20)番地にセットされます。
「スタート」ボタンはMPCのSW(0)をオンします。MPCはSW(0)がオンしたタイミングで上記データ
を読み込みます。
「ワーク」ボタンを押すと画面1に戻り、「手動運転」ボタンで画面3の手動モードになります。
入力されたデータはパルスモータを駆動するときのパルス数として扱われるといった設定です。
【パネル画面3】
送
り
(1)
戻
り
(2)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11) (12) (13) (14) (15)
(16) (17) (18) (19) (20)
自動運転
(21) (22) (23) (24) (25)
手動モードの画面です。
25個あるボタンで動作パターンを選択します。レジスタの45(&H2D)番地に押されたボタンのデータがセ
ットされます。(どれか1つだけ)
「送り」ボタンはMPCのSW(1)、「戻り」ボタンはSW(2)をオンします。MPCはこのタイミグでレジ
スタを読み込みます。
「自動運転」ボタンで画面2に替ります。
【通信プロトコル】
通信条件 9600bps、8ビット、パリティー無し、XON/OFF制御
MPCではCNFG# 4、2、2です。
GPへのデータ要求
<esc>R00??0001<cr>
??はレジスタのアドレス
要求に対するGPからのデータ
<esc>A000?<cr>
?はデータ
GPへのページ切り替え命令
<esc>W000F000?<cr>
?はページナンバー
MPCとGPの送受信は全てASCII文字列で行います。
例えば、画面1のワーク選択のデータの要求は<esc>R00320001<cr>ですから
&H1B &52 &H30 &30 &H33 &H32 &H30 &H30 &H30 &H31 &HD
と送信します。
注意点はレジスタのアドレスもHEX表記にすることです。上記のアドレスは50番地なのでHEXでは&H32
となります。これを“3”“2”という文字にして送信します。
PUT#
PUT#
PUT#
PUT#
PUT#
&H1B,&H52
&H30,&H30
&H33,&H32
&H30,&H30,&H30
&H31,&H0D
<-<-<-<-<--
<esc>R
00
32
000
1<cr>
受信データも全て文字列です。
もし、ワーク1を選択して上記の要求を行うと<esc>A0001<cr>つまり
&H1B &H41 &H30 &H30 &H30 &H31 &HD
と返ってきます。
MPCはこれの必要な部分だけを抽出して数値として扱えるようにしなければなりません。
返ってくるのが数字(0∼9)だけなら次の様に簡単に変換できます。(画面1の場合は1∼8までの数値しか来
ない)
SKIP# &H41
INPUT# A
<-- A まで読み飛ばす
<-- <cr>まで読み込み変数Aに格納する。
もしA∼Fが入る場合にはそのままでは数値として扱えません。
例えば、画面2の場合「ワーク全長」に“1234”とセットするとレジスタ30(&H1E)番地にはHEXで
“4D2”とセットされます。そしてMPCからの要求<esc>R001E0001<cr>に対して<esc
>A04D2<cr>と返してきます。“D”はそのまま数値として扱えないのでINPUT#では受信すること
が出来ません。(→サンプルプログラム *ASCII_CHAサプルーチン参照)
【操作手順】
画面1で「ワーク設定」ボタンが押されるのを待ちます。
ボタンが押されたら画面は2に替ります。MPCはどのワークが選択されたかを調べるためにレジスタ50番地を
読み込みます。もしどのワークも選択されていない場合は再び画面1に切り替えます。
次に、「スタート」、「送り」、「戻り」のどれかが押されるのを待ちます。
「スタート」が押されればワークのレジスタ30、31、32番地から「全長」「開始位置」「間隔」を読み込み
ます。
「送り」「戻り」ボタンの場合にレジスタ45番地から動作パターンを読み込みます。
【サンプルプログラム】
CNFG# 4,2,2
*MAIN
GOSUB *W_SW3
A1=&H33
A2=&H32
GOSUB *READ
GOSUB *GET_ANS
IF A=0 THEN *WORK_ERR
'
*MAIN1
S=IN(0)
IF S=0 THEN *MAIN1
IF S=1 THEN *AUTO
IF S=2 THEN *OKURI
IF S=4 THEN *MODORI
GOTO *MAIN1
'
*AUTO
WAIT SW(0)=0
'
A1=&H31
A2=&H45
GOSUB *READ
GOSUB *ASCII_CHA
A1=&H31
A2=&H46
GOSUB *READ
GOSUB *ASCII_CHA
'
A1=&H32
A2=&H30
GOSUB *READ
GOSUB *ASCII_CHA
'
GOTO *MAIN1
*WORK_ERR
P=&H31
GOSUB *P_CHA
'TIME 10
P=&H33
GOSUB *P_CHA
GOTO *MAIN
'************
*P_CHA
<-- ワーク選択のデータ要求
<-- データ入力
<-- 「全長」データ要求
<-- 「全長」データ入力
<-- 「開始位置」データ要求
<-- 「開始位置」データ入力
<-- 「間隔」データ要求
<-- 「間隔」データ入力
<-- 画面切り替え
(最初に現在の画面を呼んでからで無いとうまくいかない。なせか?)
<-- 画面切り替えサブルーチン。 画面番号は変数Pにセットします。
PUT# &H1B
TIME 10
PUT# &H57
PUT# &H30,&H30,&H30
PUT# &H46,&H30,&H30
PUT# &H30,P,&H0D
RETURN
'************
*W_SW3
WAIT SW(3)=0
WAIT SW(3)=1
RETURN
'************
*READ
PUT# &H1B,&H52
PUT# &H30,&H30
PUT# A1,A2
PUT# &H30,&H30,&H30
PUT# &H31,&H0D
RETURN
'************
*GET_ANS
SKIP# &H41
INPUT# A
PRINT A
RETURN
'************
*ASCII_CHA
WAIT RS(1)>=7
SKIP# &H41
AR(1)=GET#(0)
AR(2)=GET#(0)
AR(3)=GET#(0)
AR(4)=GET#(0)
INPUT# D
'
FOR D=1 TO 4
D0=AR(D)^&H40
'
IF D0<>0 THEN *CASE1
AR(D)=AR(D)^&H0F
GOTO *PASS1
'
*CASE1
AR(D)=AR(D)^&H0F
AR(D)=AR(D)+9
'
*PASS1
NEXT D
'
D0=0
AR(1)=AR(1)*4096
D0=D0│AR(1)
AR(2)=AR(2)*256
D0=D0│AR(2)
AR(3)=AR(3)*16
D0=D0│AR(3)
AR(4)=AR(4)
<-- GPへのデータ要求サブルーチン。 レジスタのアドレスは変数A1,A2にセットします。
<-- GPからのデータ受信(数字コードだけの場合)
<-- ASCIIから数値への変換サブルーチン
<-- RS-232Cバッファにデータが溜まるのを待ち一括で処理します。(これは大事)
<-- Aまで読み飛ばす
<-- 1文字ずつ読み込み後処理しやすい様に配列変数AR()に入れる
<-- <cr>まで読み込むためのダミー
<- 一文字ずつ0∼9までか、A∼Fまでかを調べる
<- 0∼9までの場合
<- A∼Fまでの場合
<- 各桁をシフトして一つの変数に代入していきます。
D0=D0│AR(4)
'
PRINT D0
RETURN
'************
*OKURI
WAIT SW(1)=0
A1=&H32
A2=&H44
GOSUB *READ
GOSUB *ASCII_CHA
'OKURI=
PRINT STR(-1),D0
GOTO *MAIN1
'************
*MODORI
WAIT SW(2)=0
A1=&H32
A2=&H44
GOSUB *READ
GOSUB *ASCII_CHA
'MODERI=
PRINT STR(-1),D0
GOTO *MAIN1
<- D0には数値1234(&H4D2)が入ります。
<- 手動動作パターンの要求
<- 手動動作パターンの読み込み
以上
02400
変数変換
10進数→ASCII
10
A=999 <-- 999(10進) = 3E7(16進)を1桁ずつASCIIに分解する 3=&H31,E=&H45,7=&H37
20
AR(0)=A^&H0F00
30
AR(0)=AR(0)/256
40
AR(1)=A^&HF0
50
AR(1)=AR(1)/16
60
AR(2)=A^&H0F
70
FOR I=0 TO 2
80
PRX I,AR(I)
90
NEXT I
100
FOR I=0 TO 2
110
IF AR(I)>9 GOSUB *OV_A
<--9より大きい
120
ELSE_GOSUB *UD_A
<--9以下
130
PRX AR(I)
140
NEXT I
150
END
160
*OV_A
170
AR(I)=AR(I)+&H37
180
RETURN
190
*UD_A
200
AR(I)=AR(I)+&H30
210
RETURN
>RUN
&H00 &H03
&H01 &H0E
&H02 &H07
&H33
<--'3'
&H45
<--'E'
&H37
<--'7'
02500
RS-232C
【P,Z】
P,Z】RS−232CポートのBufferサイズ
MPC−816
CH0 (プログラミングポート)
CH1 (ユーザーポート)
32Byte
64Byte
MPC−68K
CH0,1,2
255Byte
02600
Out of Range
【P,Z】
P,Z】RUNで Out of Range
Range になる
●下の例は THEN と書くところを GOTO としてしまい、816 に LOAD して GOSUB に自動変換されてエラーになった例です。
■DIKS 上のプログラム
N=0
*LOOP
IF SW(0)=0 GOTO *PASS
*PASS
N=N+1
PRINT N
GOTO *LOOP
←GOTO で飛ばすつもり
■読み込み(LOAD)後の MPC 内のプログラム
>LIST 0
10
N=0
20
*LOOP
30
IF SW(0)=0 GOSUB *PASS ←GOTO が GOSUB に変わる(正しくは THEN)
40
*PASS
50
N=N+1
60
PRINT N
70
GOTO *LOOP
←戻って繰り返し GOSUB が実行される
Programming the FLASH ROM *+++++++
1
2
3
(中略)
22
23
# 30
!! Out of Range
←GOSUB のネストが深くなりすぎてエラー(ネストの深度はプログラムにより異なります)
>
02700
パルス発生
【Z】MOVE
MOVE でY軸のパルスが出ない
【Q】
Z版でパルス発生。RMOV 100,100は動作するがMOVE 100、100などとしてもY軸が動かない。
【A】
P版をZ版にして初期化が正常に行われていないと、パルス発生等に不定の不具合が生じます。
<P版だったMPCをZ版に変更しました>
TNYFSC(R)!Rev-2.30d [VER-Zmx1729]
Copyright(C)by ACCEL CORP/BC-SOFT
[255point MIF-816Zs-task MODE1 4]
#1(X,Y,Z,U) 0 28691 -1 -3848 [XYZ,U] 100 100
←ティーチモードにすると異常な座標 MOVE,RMOV動かない
>MPCINIT
>ERASE
← SRAM初
SRAM初 期 化
← FROM初
FROM初 期 化
*
#1(X,Y,Z,U) 0 0 0 0 [XYZ,U] 100 100
>MODE 2
>MOVE 100 100
>RMOV 100 100
←Z版(ここではまだ初期化してません)
←正常
←動作する
←動作する
出荷時には全商品を初期化しておりますが、輸送・取り扱い時に静電気等でRAM内のパラメーターが化けること
がありますので、装置組み込み後、ご使用になる前に再初期化して下さい。
02800
パルス発生
【P,Z】
P,Z】TTL・
TTL・ラインドライバー出
ラインドライバー出力の Z 相を MPC
MPC の原点入力に接続する I/F
●ラインドライバ(差動出力)参考回路
①
TLP521
100Ω
MPG 原点入力
キャンセル
ダイオード
DC24V SG
ドライバ
差動 Z 相出力
最も信頼性のある方法です。キャンセルダイオードはラインドライバがTTLのものであれば、フォトカプラへ
かかる最大逆電圧が4Vなので、無くても問題になることは少ないです。
②
Z
100Ω
TLP521
MPG 原点入力
Z
SG
DC24V SG
ドライバ
差動 Z 相出力
ドライバのSGが利用できればこの方法も可能です。この場合にはフォトカプラへは逆電圧はかかりません。
接続は消費電流が少ない正論理側を使うのが望ましいと思います。
③
MPG 原点入力
Z
Z
SG
TD62004
DC24V SG
ドライバ
差動 Z 相出力
ドライバのSGを外部24VのSGと共通にすることが可能であればこの方法もとれます。この場合はノイズに
弱いので配線に十分な注意をして下さい。(配線後、シンクロ等でノイズの様子の確認をするのが望ましい)
TD62004は抵抗内臓のトランジスタアレイですから使用部品は最少です。
●TTL出力 参考回路
5V
100∼200Ω
TLP521
MPG 原点入力
SG
ドライバ
TTL Z 相出力
02900
#DEFS,#DEFO
【P,Z】
P,Z】#DEFS
#DEFS と#DEFO
#DEFO に同一名を定義したら?。メモリー
メモリー I/O
I/O の定義。
#DEFO,#DEFSで物理I/Oを同一の名称に定義できます。名称は同じでも入出力で別個の扱いとなります。
メモリーI/Oの場合は両方に同一名を定義します。
下記はエディターで作成したプログラムを読み込んだ時の自動変換の様子です。
■#DEFO,#DEFSしたメモリーI/O
[Source]
#DEFO PHY_0 1
#DEFS PHY_0 1
'----------#DEFO MEM_1 -1
#DEFS MEM_1 -1
'----------*LOOP
ON 1,-1
PRINT SW(1)
PRINT SW(-1)
TIME 100
OFF 1,-1
PRINT SW(1)
PRINT SW(-1)
TIME 100
GOTO *LOOP
■#DEFOだけのメモリーI/O
[Source]
#DEFO PHY_0 1
#DEFS PHY_0 1
'----------#DEFO MEM_1 -1
'----------*LOOP
ON 1,-1
PRINT SW(1)
PRINT SW(-1)
TIME 100
OFF 1,-1
PRINT SW(1)
PRINT SW(-1)
TIME 100
GOTO *LOOP
[LOAD prg]
10
#DEFO PHY_0 1
20
#DEFS PHY_0 1
30
'----------40
#DEFO MEM_1 -1
50
'----------60
*LOOP
70
ON PHY_0,MEM_1
80
PRINT SW(PHY_0)
90
PRINT SW(-1)
100
TIME 100
110
OFF PHY_0,MEM_1
120
PRINT SW(PHY_0)
130
PRINT SW(-1)
140
TIME 100
150
GOTO *LOOP
←入力はそのまま
[LOAD prg]
10
#DEFO PHY_0 1
20
#DEFS PHY_0 1
30
'----------40
#DEFO MEM_1 -1
50
#DEFS MEM_1 -1
60
'----------70
*LOOP
80
ON PHY_0,MEM_1
90
PRINT SW(PHY_0)
100
PRINT SW(MEM_1)
110
TIME 100
120
OFF PHY_0,MEM_1
130
PRINT SW(PHY_0)
140
PRINT SW(MEM_1)
150
TIME 100
160
GOTO *LOOP
←変換されている
03000
メモリー I/O
【P】メモリー
メモリー I/O
I/O 数。(マニュアルの
マニュアルの訂正)
ユーザーズマニュアル(1997 改定第2版 以前)のIN/OUTのパラメーターとしてメモリーI/Oの場合
は−1∼−8とありますが、P版のメモリーI/Oは−1∼−128(ビット)ですから、IN/OUTのパラメー
ターは−1∼―16(バンク)です。
03100
RS-232C
【P,Z】
P,Z】RS-232C
RS-232C を使ったPC・計測器とのデータ授
データ授受
【Q】
MPC816を使って測定データを取り込むプログラムを作りたいのですが、パソコンとMPCと測定器を使っ
て次のことができるかアドバイスお願いします。
計測器
MPC
RS-232C
PC
RS-232C
指定 パル ス移動
測定 器 からデ ー タを取 り込 み、
PCへ送信。PCはファイル へ書 き込 み
「終 了」の合 図 をPCに送 る。
移動 パル ス量指定
測定 数 指定
「スター ト」信号 をM PCに送 る
デ ー タを保存する
1.MPCが2つのポートを読み書きできるのかどうか?
2.もしできるのであればポートの初期化等はどうやるのか?
3.MPCから点データをパソコンに送れるかどうか?
【A】
1.MPCが2つのポートを読み書きできるのかどうか?
816では一個ユーザチャネルしかありませんので、素直に通信するには、68kの方をオススメします。
68kは単体でもパルス発生できます。RSは2chあり、ioは入力8点,インタロック用出力4点とれます。
どーしても816ということであれば、プログラム用ポートとパソコンを接続して、プログラムで対応するしか
ありません。
マニュアルでは三章の3.9−(3)に例がありますが、面倒です。
2.もしできるのであればポートの初期化等はどうやるのか?
816のch0は9600,even,7に固定されています。
CH1についてはCNFGコマンドです。
68kでは同様のcnfgコマンドで変更します。
3.MPCから点データをパソコンに送れるかどうか?
PRINT# X(1)等を使用します。
通信についてはたいていのことはできるとおもいますが、816ではプログラムが複雑になってしまいます。
03200
RS-232C
【P,Z】
P,Z】少数点を含む正/負数値データの入力
"このプログラムは#1から少数点付き数値データを入力して変数へ代入します
"MPCは小数点が扱えないので'.'を読み飛ばして整数にしています。
"このサンプルの入力条件は小数点以下3桁固定で
"7キャラクター以上(CR,LF含めて)の長さのデータです。
"
CNFG# 4,0,2
"RS-232C初期化
*LOOP
GOSUB *WAIT_DATA
"入力待ち
GETN# A1
"符号は取り込まれます('-123'=-123)
SKIP# &H2E
".までスキップ
INPUT# A2
A1=A1*1000
"少数点以下3桁として繰り上げ
IF A1<0 GOSUB *REVERSE
"正/負反転
A3=A1+A2
PRINT A3
"結果
GOSUB *BUF_CLR
"IN BUFFERクリアー
GOTO *LOOP
'-----------'RS-232C
' BUF CLEAR
'-----------*BUF_CLR
B=RS(1)
"IN BUFFER残数
FOR I=1 TO B
B1=GET#(1)
NEXT I
RETURN
'-----------'BUFFERING
'-----------*WAIT_DATA
C=RS(1)
IF C<7 THEN *WAIT_DATA
"7文字溜まるまで待つ
RETURN
'-----------'DATA REVERSE
'-----------*REVERSE
A2=A2*-1
RETURN
実行結果
123000
123001
-123456
←123.000と入力
←123.001と入力
←-123.456と入力
03300
ON_AND
【P】ON_AND
ON_AND のパラメーター、
パラメーター、I/O
I/O 定義
【Q1】ON_ANDのパラメーターに変数・定数を用いた場合の出力条件は?
【Q2】ON_xxx、OFF_xxxコマンドに#DEFS・#DEFOで定義したI/Oは使えるか。
【A1】
ON_ANDの第1・2パラメーターに変数(定数)を使用した場合は
その数値の論理積が0か否かの判定になります。
10
20
30
40
50
60
70
80
90
100
110
120
130
#DEFO MIO -1
#DEFS MIO -1
D1=1
FOR J=1 TO 4
D=1
FOR I=1 TO 4
SETIO
ON_AND D,D1 MIO
PRINT D,D1,IN(-1)
D=D*2
NEXT I
D1=D1*2
NEXT J
>RUN
1 1
2 1
4 1
8 1
1 2
2 2
4 2
8 2
1 4
2 4
4 4
8 4
1 8
2 8
4 8
8 8
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
ON_ORは論理和で判定するのでどちらかが0以外(負でも)ならONとなります。
10
20
30
40
50
60
70
80
90
100
110
120
130
RUN
1 1
2 1
4 1
8 1
1 2
2 2
4 2
8 2
1 4
2 4
4 4
8 4
1 8
2 8
4 8
#DEFO MIO -1
#DEFS MIO -1
D1=1
FOR J=1 TO 4
D=1
FOR I=1 TO 4
SETIO
ON_OR D,D1 MIO
PRINT D,D1,IN(-1)
D=D*2
NEXT I
D1=D1*2
NEXT J
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
8 8 1
ON_ANDの出力条件は第1、第2パラメーターの論理積が0か否かです。
R1=5
>SETIO
>ON_AND R1,1,-1
>PRINT IN(-1)
1
>SETIO
>ON_AND R1,2,-1
>PRINT IN(-1)
0
>SETIO
>ON_AND R1,3,-1
>PRINT IN(-1)
1
>SETIO
>ON_AND R1,4,-1
>PRINT IN(-1)
1
>SETIO
>ON_AND R1,5,-1
>PRINT IN(-1)
1
←&H05 AND &H01 = &H01
←&H05 AND &H02 = &H00
←&H05 AND &H03 = &H01
←&H05 AND &H04 = &H04
←&H05 AND &H05 = &H05
【A2】
上記プログラムで示す通り、使用可能です。
03400
FTM(98DOS)
【P,Z】
P,Z】FTM(98DOS)の
FTM(98DOS)のシステムディスク(FD)
システムディスク(FD)の
(FD)のファイル
MPCプログラム開発用のFTMシステムディスク(FD)に必須のファイル構成例です。
¥
│ AUTOEXEC.BAT
│ COMMAND.COM
│ CONFIG.SYS
│ FTM.EXE
←FTM(for PC98DOS)本体
│ IOC.EXE
←I/Oチェッカー
│--MSDOS
│ RSDRV.SYS
←RS-232Cドライバー
│ SPEED.EXE
←RS-232C初期化
※使い方に合わせてディレクトリー/ファイル配置は変更してください。
※このほかSYSLD.EXE(システムローダー)&データファイル,TRMX.EXE(無手順ターミナル)、MAN.EXE&データファイル(DOS版HELP)などをセ
ットアップしておくと何かと便利です。
AUTOEXEC.BATサンプル
AUTOEXEC.BATサンプル
ECHO OFF
PATH A:¥;A:¥MSDOS;B:¥
prompt $l$p$g
CONFIG.SYSサンプル
CONFIG.SYSサンプル
FILES=30
BUFFERS=20
SHELL = A:¥COMMAND.COM A:¥ /P /E:512
device=a:¥MSDOS¥rsdrv.sys
←RS-232Cドライバー宣言
03500
パルス発生
【P】ステップモータードライバーの
ステップモータードライバーの入力と MPC
MPC 出力の接続
MPG−303
ドライバー
5V
5V
CW
CW
5V
5V
CCW
CCW
MPC,MIF,MIO 出力
24V
OUT
2K Ω 1/4W
← I=約 10mA
220 Ω
出力電流 off
ステップ角切替
フォトカプラー
MPG-303のパルスポートの5Vは、I/O駆動用の24V系から分離されたパルス出力専用の電源です。
この5Vをドライバーに供給してもMPC,MIFなどのI/Oで駆動することはできません。
上図の様にドライバーの入力がフォトカプラーの場合、出力電流off・ステップ角切替等の入力へは24Vに電流制限抵抗を挿入し
て使用します。
(オリエンタルモーター(株)のカタログでは25mA以下となっています。)
03600
改版
【P,Z】
P,Z】MIO-240E、
MIO-240E、O_SW()対
O_SW()対応、MIO-248K(仮
MIO-248K(仮称)対応 (970724)
970724)
【Bug Fix】
①MIO−204Eで、Cポートを入力した場合にビットシフトしてしまう。SW、HSW、IN()で不具合。
【Bug Fix】
②!マークモニタ(8255抜き対応版)
O_SW()が未対応であったために出力ポートの状態を読めなかった。
【New】
③MIO−248K(仮称)対応
MIO−240と248Kの違いは自動判別し、ユーザーはハードの違いだけを認識して使用。
248Kはコマンドレジスタが強制的に0F0Hになっているようにする。
【Alter】
TNYFSC(R)!Rev-2.30d [VER-Zmx1729]
Copyright(C)by ACCEL CORP/BC-SOFT
[255p MIF-816Zs-task MODE1 4]m401
TNYFSC(R)!Rev-3.30e [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300p MPG-303(PG 1 3)MODE5│6]m401
03700
パルス発生
【Z】RMOV
RMOV で 4 パルスの
パルスの出力ができないという件についての調査(未解決)
①
MPC-SET(EX)Z 版 MODE2 でのパルスです。
①②③は RMOV で4、5、3パルス出力したときの波
形です。どれもデューティー50%で同様の形です。
④は RMOV で6パルス出力したときです。MPC は 5 パ
ルス以下の時と6パルス以上の時でデュティーを変え
ています。もし5パルス以下が動作しなければこれが
原因とも考えられますが、4パルス以外では動作する
ので原因とは考えられません。
⑤は PULSE コマンドで4パルス出力したものです。座標管
理の問題さえなければ PULSE コマンドでも代用できま
す。
②
④
⑤
③
①②③④のプログラム
1
CHGREV 22
10
INPUT P
20
MODE 2
30
ACCEL 2000
40
FEED 0
50
*LOOP
60
RMOV P,0,0
70
GOTO *LOOP
⑤のプログラム
1
CHGREV 22
10
INPUT P
20
MODE 2
30
ACCEL 2000
40
FEED 0
50
*LOOP
60
PULSE 4,1,5
70
GOTO *LOOP
詳細は実際にドライバーと接続して調査してみない
と分かりません。
デューティーの問題であれば PULSE コマンドで実験でき
ますが、100μ以下のパルスは出せません。
※上記と同様に5パルスだけ動作しないというドライバーもある。(97/07/30)
03800
プログラムロード
【P,Z】
P,Z】フラッシュ
フラッシュ ROM
ROM 版にプログラムを
プログラムを読み込んだのに消えた?
現在のMPCはプログラムをフラッシュROMに保存します。フラッシュROMはバッテリでデータを保持するS
RAMとは違い、バッテリトラブルやノイズによるRAM化けからプログラムをプロテクトします。
FTMで読み込んだプログラムはSRAMにロードされ、RUNまたはFWRITEコマンドでフラッシュROM
に書き込まれます。
MPCは起動(リセット)時にフラッシュROMにプログラムが有るとそれをSRAMに復元します。
もし、プログラムを読み込んだだけで電源のon/offやリセットを行うと、そのプログラムは消える(古いプ
ログラムに戻る)ことが有ります。
プログラム読み込み後はRUNまたはFWRITEでフラッシュROMへの書き込みを行って下さい。
初期化はMPCINITとERASEを実行して下さい。MPCINITはSRAM内の初期化、ERASEはフ
ラッシュROMの初期化です。
LIST
10
ON 1
【プログラムを読み込みます】
>LIST
10
'TEST
20
ON 0
30
TIME 10
40
OFF 0
50
END
【電源を OFF/ON します】
Copyright(C)by ACCEL CORP/BC-SOFT
[300point MPG-303(PG 1 3)MODE5│6]
>LIST
10
ON 1
>
【再びプログラムを読み込みます】
RUN
Programming the FLASH ROM *++++++++
【電源を OFF/ON します】
TNYFSC(R)!Rev-3.30e [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300point MPG-303(PG 1 3)MODE5│6]
>LIST
10
'TEST
20
ON 0
30
TIME 10
40
OFF 0
50
END
FWRITE
*++++++++
←過去に RUN してフラッシュ ROM に入っているプログラム
←その場ではプログラムの LIST が見られます。
←フラッシュ ROM のプログラムが戻されます。
←実行します
←フラッシュ ROM に書き込んでいます。
←プログラムはそのままです
←FWRITE コマンドはフラッシュ ROM に書き込むだけです(プログラムは実行しません)
03900
版変更
【P,Z】
P,Z】現在の出荷時設定と変更方法(970731)
■フラッシュROM版MPCにはZ、P版の2種類有ります。
それぞれの特徴は
P版
パスル発生はMPG−303
12タスク
パルス発生中もタスク停止が無い
3バイト変数
小∼中規模、多軸制御向き
Z版
パルス発生はMIF−816
8タスク
パルス発生中はタスク停止
2バイト変数
小規模、最高3軸(無理して4軸)
などです。
現在、MPC−SET(EX)( MPC−816XとMIF−816Xのセット)はZ版、他はP版で出荷して
います。
Z版のパルス発生形態としてMODE1∼4があり、基本はMODE 2としています。
また、Z版は保守対象外(機能追加、BUGFIX等は行わない)としています。
■版の変更方法
P←→Zの変更は、専用ソフト「MPCシステムローダー」を用いてMPCにシステムデータを転送します。
MPCシステムローダーには、WIN95/NT版、DOS/V版、PC98DOS版がありますから、PCの機
種で選択してください。FTMW32、FTMと同じ環境(PCの設定、ケーブル)で動きます。
システムローダー、システムデータは弊社インターネットホームページからダウンロードできます。FDでも配布
しています。ご入用の方は連絡下さい。
[システムローダー]
SYSLD.EXE
NEC PC9801 DOS 用
SYSLD31.EXE
DOS/V 用
SYSLDW32.EXE
Win95 用
04000
PULS
【Z】 PULSE
PULSEコマンド
コマンド裏
コマンド裏機能の停止条件 (裏機能はZ版(MIF-816パルス発生)のみ)
PULSE
&HB(pat)(adr) -n -m
B:0=CW/8=CCW
adr:入力ポート(8255アドレス直接指定 )
pat:停止入力(OR)
>AXIS 1
>PULSE &H8748 -100 -100
>PULSE &H0248 -100 -100
>AXIS 2
>PULSE &H8748 -100 -100
←X軸CCW方向回転。SW(0),(1),(2)のどれかがONで停止
←X軸CW方向回転。SW(1)がONで停止
←Y軸CCW方向回転。SW(0),(1),(2)のどれかがONで停止
04100
GPY
【P,Z】
P,Z】GPY−67の動作確認【参考資料】 97/08/06
■MPC−816シリーズのBUSは日本コンピューター・ネットワーク(株)のGUPPYシリーズと互換性があり(※1)、
そのなかにはMPCの周辺としても使用できるものがあります(※2)。
GPY−67は同社のLCDインターフェースカードで、I/Oマップで動作しますから、そのままMPC−816で使用で
きます。
※1 MPCはI/Oアクセスのみです。
※2 I/Oマップで動作するボードのみ。(全てのボードを確認してはいません。)
GPY-67 (I/Fボード+LCD)
MPC-816
85
I/Fボード
LCDモジュール
ABC
1234567890
36
スタンレー電機(株)
GML1620A
16キャラクタ×2ライン
500
ゲーブル付き
MPCシリーズとサイズが異なるので
取付金具「 ADP-325」 (アクセル ) を
用いてラックに挿入します。
■GPY−67で表示出来る文字は英数字と記号・カタカナのみで、日本語は表示できません。しかしI/FボードがBUS
直結であるためMPCのRS−232CやI/Oを使用しません。またMPCからはOUTコマンドで制御できるので、簡単
なメッセージやカウント表示などに適します。
■GPY−67仕様(抜粋) (97/08/06 現在)
●LCD部
表示文字
16キャラクター×2ライン 1/16duty
外形寸法
85×36×10mm
消費電力
12.5mA
型式
GML1620A スタンレー電機(株)
●本体
アドレス
I/Oマップで動作。出荷時&HDC∼&HDF。MPCでは出荷時設定で使用可能。
基板サイズ
100×70mm
消費電力
50mA
●定価
¥17、800−
l
l
l
GUPPYシリーズ、MPCシリーズは改版等により仕様が変更されることがあります。必ず使用前に仕様を再確認し
て下さい。
アクセルではGUPPYシリーズの取り扱いはしておりません。GUPPYシリーズに関するご質問は発売元・商社等
にお問い合わせ下さい。
アクセルではGPY−67の実験機、サンプルプログラムの用意があります。ご入用の方は技術係までご連絡下さい。
04200
BUS
【P,Z】
P,Z】 MPC-816X(
MPC-816X(FROM版
FROM版)とMIF-816Zの
MIF-816Zの組み合わせ使用について (970808)
現行のMPC−816X(フラッシュROM版 PCB番号:CEP-021F)とMIF−816Z
Z(2世代前のI/Fボー
ド)はBUS仕様の一部の違いにより組み合わせて使用できません。
保守等でCPUを交換する場合は下記の処置を施すことで使用可能になります。
40
39
2
1
2KΩ程度の抵抗
7 番ピン
J5 BUSコネクター
MPC−816X
CEP-021F
実装面
MPC−816XのBUS(J5)の1(P5)と7(ME)を2KΩ程度の抵抗で短絡する
04300
ご案内
8255製造中止にともなうボード変更ならびに機能仕様変更について
1997
1997 年 8 月 21 日木曜日
ここ数年、実装技術の激変にともない、各半導体メーカーは製品の世代交代をすすめ、DIP系、リード線系の部品を大幅に
絞り込んでおります。当社製品に関連するものとしては以下のような部品です。これらの製造中止は業界全体におよぶもので、
いずれも代替品はありません。半導体業界は小口産業用の部品はほとんど生産しないという方針のようです。つきましてはお
客様におかれましても、以下の点に御留意ください。
l
l
l
l
l
今後各ボードは以下日程にしたがって随時変更されます。ご注文の型式は自動的に、新機種に割り当てられます。旧機種
であるE
EPROM版のCPUにIOを追加したり保守目的の場合は”保守用”と明記ください。
フラッシュ版CPUについてはシステム入れ替えにより、使用可能となります。また、97年8月以降出荷のCPUにつ
いてはすでに新旧いずれのボードにも対応可能です。
8255
8255 の内部機能(MODE1,MODE2
MODE1,MODE2 など)に依存した使用方法については、保守を除き今後使用できなくなります。
MP C− 8 16 Xで Z 版パ ル ス発 生を御使用の場合。弊社でも万全を期してはおりますが、互換性に問題が発生する場
合があります(主に速度の相違)。このため、事前に互換性の確認をするために貸出評価器を用意させていただきますの
でお申し出ください。
MP C− 81 6 Xに マシ ン語 プ ログ ラム を摘用されている場合は、弊社まで詳細をお知らせください。CPUが高速に
なりループカウント時間や816X上のIOアドレスに相違があります。
8251
EPROM
ガラス管ダイオード
8255
80周辺
32ピン、28ピンとも
表面実装に移行
80周辺
対応済
対応済
対応進行中
対応中
同等回路に置き換え
フラッシュ化
表面実装パタン追加
疑似回路におきかえ*
8255の廃止については以下のような手順で実施もしくは進行中です。8255の置き換えは疑似回路のため、旧バージョ
ンでは使用できません。(MIP−048は例外で旧、新とも共通に使用できます。)
従来機種
MIP-048
標準機種
MIP-048
対応
対応済
MOP-048
IOP-048
MOP-048?
IOP-048?
MPS-324
MPS-324?
97 年中移行
在庫なくなり
次第
対応進行中
従来機種
MIF-816X
標準機種
MIF-816K
対応
10 月頃移行
MIO-816X
MIO-240E
MIO-816K
MIO-248K
97 年度中移行
在庫なくなり
次第
MCD-001
MPC-816X
***
MPC-816K
l
l
97 年4月迄に
移行
詳細
8255をすでに廃止。MSIで構成されたものが出荷
されています。
8255を廃止。*
8255を廃止。*
8255をすでに廃止。パラレルポート廃止
詳細
次期ロットよりMIF−816Kとして8255の無い
ものに変更されます。*
8255の無いものに変更されます。*
入力切り替えなどの8255に依存した機能は削除され
ます。保守在庫はあります。
廃盤です。保守在庫はあります。
MPC−816Xは大幅に変更されます。8255をM
SIで置き換えると従来のボードに収まらないためで
す。**
*8255 が疑似回路による置き換えのため、ソフト上の対応が必要です。このため、EPROM版CPUに追加する場合は
保守と明記してご発注ください。
**MPC−816XはCPUが変更されます。CPUコアはZ80のため、マシン語互換ですが、実行スピードが3倍と
高速になり、スピード、タイミングの互換性の確保に問題が予想されます。Z版ではハード依存の機能が多いのでとくに
細 か な 相 違 点 が 出 て く る と 考 え ら れ ま す 。 基 本 的 な 相 違 と し て C P U 上 の IO に 相 違 が あ り ま
す。:in(0)=3ah,in(1)=0f0h&(3ch) + 0fh&(38h),out0:38h(lower4bit)+3ch(higher4bit)
04400
パルス発生
【P,Z】
P,Z】新しい MPC
MPC に Z 版のプログラムを
プログラムをロードし
ロードして実行すると PG エラー(970821)
エラー(970821)
【Q】ラック構成の新しいMPC−816にMIF−816からパルスを出すプログラムをLOADした。
LOAD時はエラーにならなかったが、RUNすると PG Comunication error となった。
【A】MPCの基本出荷版はP版です。これにZ版のプログラムをLOADして実行すると下記の様なエラーとな
ります。
■版の確認
P版(MPG−303からパルス出力)
VER
TNYFSC(R)!Rev-3.30e [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300point MPG-303(PG 1 3)MODE5│6]
Z版(MIF−816からパルス出力)
VER
TNYFSC(R)!Rev-2.30d [VER-Zmx1729]
Copyright(C)by ACCEL CORP/BC-SOFT
[255point MIF-816Zs-task MODE1 4]
P版に下記のZ版のプログラムをLOADして実行すると通常は①の様にMODEコマンドでOut of Rangeエラー
となるはずですが、MODEコマンドが無いと②の様にPG Comunication errorとなります。
MODEコマンドはパルス発生の基本となるパラメーターを設定しますので、必ず全てのパルスコマンドの前に実
行(プログラムに記述)して下さい。ご確認願います。
MODE 2が基本モードです。
①MODEコマンド有り
>LIST
10
MODE 2
20
ACCEL 3000
30
HOME 0
40
MOVE 1000,1000
Programming the FLASH ROM *++++++++
# 10
!! Out of Range
②MODEコマンド無し
>LIST
10
ACCEL 3000
20
HOME 0
30
MOVE 1000,1000
Programming the FLASH ROM *++++++++
# 10
!! PG Comunication error
■版変更方法
フラッシュROM版MPCをP版からZ版へ変更するにはシステムローダーでZ版のシステムデータを転送しま
す。
システムローダーは
PC−98版 SYSLD.EXE
DOS/V版 SYSLD31.EXE
Win95版 SYSLDW32.EXE
があります。
また、データとして「???.HEX」と「Z230.816」というファイルが必要です。
いずれも最新版が弊社ホームページからダウンロードできます。
E−MAIL、NIFTY、FD(720Kor1.44M要連絡)でも提供してます。
※版変更後は必ずERASEとMPCINITで初期化して下さい。
04500
FTM
FTM31 installation summarily
Introduction of the installation FTM on your system
FTM needs ANSI.SYS and MODE.COM in the MS-DOS system. "DEVICE=ANSI.SYS" must be added in the CONFIG.SYS. When FTM
is executed, FTM calls MODE.COM to preset the CH0 RS-232 . Please refer to the two files, Autoexec.smp and Config.smp.
And you should copy FTM31E and IOC31E into your system disk.
When you see the menu after you execute FTM31E.EXE, You should choose one, MPC-816 or MPC-68K.
Soon you can see the opening message of MPC with it's prompt.
When you want to see the map of special function keys, You should push END key.
FTM31E works with IOC31E on a PC/XT, PC/AT, PS2 in the native DOS.
FTM31J works with IOC31 on a J3100 (Japan Toshiba PC ) in the Japanese DOS.
FTMPS works with IOC31 on a PC/XT, PC/AT, PS2 in the Japanese DOS/V.
When you type "CTRL-2," FTM executes your editor by executing MI.BAT. So you should add
in the MI.BAT. When you quit the editor, You can return FTM automatically.
Email:
web:
accelmpc@po.infosphere.or.jp
http://www.sphere.ad.jp/accelmpc/
[MAIN MENU]
---------------------------│
<
MPC Terminal
>
│
│
FTM Rev. 1.11b
│
│
(DOS Ver3.3)
│
│
│
│
1 .....
MPC-816
│
│
2 .....
MPC-68K
│
│
3 .....
MPC-NET
│
│
4 .....
FTM Setup
│
│
0 ... return to DOS
│
│
│
│
<↑>or<↓then<CR>
│
---------------------------[HELP MENU]
PUSH "END" KEY
--------------------------------------------------------------│ Cursor control
Editing
others
│
│ CTRL+E:up
CTRL+N:ins Line
CTRL+L:change filename
│
│
D:right
Y:del Line
J:current filename │
│
S:left
I:ins char
O:save screen
│
│
X:down
G:del char
-:IOC (IOC31E.EXE) │
│
F:line end
K:del right
2:editer(mi.bat)
│
│
A:line start
U:del left
M:last line run
│
│
R:page down
Q:clear screen
[:run
│
│
C:page up
Home :clear screen
]:quit all
│
│
W:scroll up
Alt
:function-key swap │
│
Z:scroll down
!aaa :aaa DOS command
│
│
│
│
│
│
- - - - - - - - - - - command
- - - - - - - - - - │
│
AUTO: automatic line numbering
│
│
│
---------------------------------------------------------------
your favorite text editor
04600
IN(),OUT,BOOST
【P,Z】
P,Z】プログラム実
プログラム実行速度(970826)
■IN()、OUTの実行時間について
①はIN()とOUTをFOR NEXTで10000回ループしたものです。
②はIN()、OUT無しです。
これらよりIN()とOUTの実行時間は約0.3mSECとなります。
MPC-816のIN()関数には5mSECのフィルターはありません。
①
10
FOR I=1 TO 10000
20
A=IN(0)
30
OUT A,0
40
NEXT I
約4.4SEC
②
10
40
約1SEC
FOR I=1 TO 10000
NEXT I
■BOOSTコマンドについて (BOOSTについては「基本クロックの変更」参照)
③はBOOSTコマンド無し、④は有りです。
BOOSTモードにするとTIME設定が1/10になります。
SW()の5mSECのフィルターは変わりません(⑤、⑥)
③
10
FOR I=1 TO 100
25
TIME 1
40
NEXT I
約10SEC
④
5
BOOST
10
FOR I=1 TO 1000
25
TIME 1
40
NEXT I
約1.1SEC
⑤
10
FOR I=1 TO 1000
25
A=SW(0)
40
NEXT I
約5.3SEC
⑥
5
BOOST
10
FOR I=1 TO 1000
25
A=SW(0)
40
NEXT I
約5.3SEC
※時間測定は手動のストップウォッチ、シングルタスクで行なったものです。タスク数やプログラム内容により変
化(増加)します。
※BOOSTコマンドサポートはP版のみ
04700
パルス発生
【P】MPG-303
MPG-303 の赤 LED
LED が消えない(970826)
【Q】
原点復帰(HOME)のときMPG−303の赤LEDが点灯したまま、サーボモーターが動かない。
赤LED点灯状態になる原因は?
【A】
MPGの赤LEDはMPG動作中に点灯します。ACCELやMOVE・RMOV・HOMEなどパルス関係コマンドを実行
している時です。赤LEDが点灯しっぱなしになるのはノイズで倒れたりコマンドが終了しないなどのときです。
現在のMPG−303のパルス信号回路にはアイソレーターが組み込まれておりMPCがノイズで倒れることはまずありま
せん(現時点でノイズで不具合が発生したとの報告は皆無です)
HOMEコマンドで動かなくなるのは、モータードライバーの異常や信号線断線などの可能性があります。
HOMEコマンドはセンサー停止なのでモーター(マニュピレーター)が動かずセンサーが動作しなければパルスを出し続け
ることになります。
【調査結果】
サーボモータードライバー内のヒューズが切れていてモーターが回転しなかった。
04800
RS-232C
FTMW32
FTMW32 と接続して電源を入れても MPC
MPC のオープニング
オープニング MSG
MSG が出ない(970827)
[実装後の検査で発見]
FTMW32と接続して、MPCの電源を入れてもリセットボタンを押してもMPCのオープニングメッセージ(Verデー
タ)が表示されない。つまり通信出来ない。しかしエージングプログラムは動作する。
【原因】
OC7(フォトカプラ)リードの半田ブリッジ。
04900
改版
【P,Z】
P,Z】8255
8255 レスボード対
レスボード対応、MIO-240E BUG Fix (970903)
970903)
モニターVER m403
970903 リリース/WinWeb変更
TNYFSC(R)!Rev-3.30e [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300p MPG-303(PG 1 3)MODE5│6]m403
(Z版も同様)
【Comment】
m401はMIO−240E入力が正常に動作しない。
ただしm401は世の中にはでていない。m402は無い。
05000
FTMW32
IBM Think Pad 535
535 で FTMW32
FTMW32 と MPC
MPC がリンク出
リンク出来ない(970912)
【Q】
IBM Think Pad 535にFTMW32をインストールした。
セットアップは正常に終了し、MPC−816とTPのCOM1(背面9ピンD−SUB)を正しく接続しているのにリンク
できない。
【A】
TP535のCOM1は初期状態でIrDAを使う設定になっています。この状態では接続できません。
「シンクパッド 機能設定」でIrDAを「使わない」設定して下さい。
一度設定してもIrDA機器を使用すると「使う」設定に戻ってしまうことがある様です。
05100
FTM(98DOS)
Win95
Win95 の DOS
DOS 窓で実行すると「RS ドライバが
ドライバが組み込まれていません」(970917)
【Q】
PC−98シリーズのWin95のDOS窓でFTM(98DOS)を実行すると「RSドライバが組み込まれていません」
と言われる。
【A】
Win95でもDOS窓でFTM(98DOS)を使う場合はデバイスドライバーの登録が必要です。
起動ドライブのルートディレクトリーのCONFIG.SYSに
DEVICE=A:¥WINDOWS¥COMMAND¥RSDRV.SYS
を追加して下さい。
05200
パルス発生
MPC−816X(P版)のパルス発
パルス発生範囲(971003)
816X(P版)の座標範囲は3バイトより少し少ない約±819万パルスです。
連続出力可能パルスも同じ約±819万です。
現在点を−800万に設定してMOVE 800万で1600万パルスを出すことは出来ません。
相対的に±819万が限界です。
連続移動可能範囲 819 万
-819 万
0
座標管理範囲
>SETPOS 0 0
>MOVE 8000000 0
←現在位置を0にします
←X=800万まで移動
+819 万
05300
MPC-NET
MPC-NET
MPC-NET の異常を調べる方法
■不具合内容
赤LEDが点滅
■可能性
通信(配線)障害
NET故障
■調査方法
MPC−NETのデータはパケットに乗せられNET間を接続順にリレーされます。
断線や接続不良の通信障害の場合、そのNETの前を調べて見てください。
通信線をバイパスしてみるのも有効です。
配線でなければNETが壊れている(寿命?)かもしれません。
#n
#1
バイパス
#2
#3
#4
05400
パルス発生
EX(Z
EX(Z 版)のボードを
ボードをラックに
ラックに入れ替えて MPG-303
MPG-303 からパルス出
パルス出力したい(971003)
SET(EX)の出荷時設定はMIF−816からパルスを出力するZ版です。
MPG−303からパルス出力するにはシステムローダーでP版に変更して下さい。
SET(EX)
RACK
①EXからMPC−816と
MIF−816をRACKに移動
MIF−816
MPC−816
②MPG−303を入れる
③EXのMPC−816はZ版なのでMP
G−303からパルスは出せない。
システムローダーを使ってP版データをダ
ウンロードする(別紙参照)
変更したら、ERASEとMPCINIT
コマンドで初期化する。
ケーブルはFTMと共通です。
05500
パルス発生
MPC−816へのMPG−303の直結2連装が可能か(971111)
MPG−303にBUSコネクター(J5)を実装するとMIF無しでMPC−816と直結可能です。その場合
でも複数のMPGを実装出来ます。 が、保証外です。(直結2連装による不具合は未知ですが、万一予期せぬ事
態があっても保守できないかもしれないということです。悪しからず)
05600
MPC-816X
M()配
M()配列を初期化する方法(971113)
M()配列はMPCINIT・ERASEコマンドでは初期化されません。
M()の初期化化はプログラムで行います。
10
FOR I=0 TO 5999
20
M(I)=0
30
NEXT I
RUN
05700
MPC-816X
現在位置の単軸変更(971114)
SETPOSコマンドの保持する軸パラメータに「現在位置」を指定します。
10
SETPOS 0,123
←現在位置の設定
20
FOR I=1 TO 10
30
SETPOS I,Y(0) ←Xは変化、Y軸はそのまま
40
PRINT P(0)
50
NEXT I
RUN
1 123 0 0
2 123 0 0
3 123 0 0
4 123 0 0
5 123 0 0
6 123 0 0
7 123 0 0
8 123 0 0
9 123 0 0
10 123 0 0
X∼Z(0)は現在位置の取得のみです。設定は出来ません。
>SETPOS 12345 6789
←設定
>PRINT X(0)
←X軸現在位置
12345
>PRINT Y(0)
←Y軸現在位置
6789
>X(0)=1000
←こうしても
>PRINT X(0)
←変わらない
12345
>Y(0)=1000
>PRINT Y(0)
6789
05800
MPC-816X
RACK−Cでクロスト―ク(971202)
I/Oチェッカーなどで見ると、RACK−C(16スロット)でI/Oボードを挿入していない部分の入出力が立つ(全部
ではない)ことがあります。
これはBUS―C上でのクロストークによるもので、BUSボードに終端抵抗(10kΩ)を実装することで解決します。
05900
MPC-816X
改版 m403→
m403→m404(971202)
BUG FIX
MIO−816 #11 アクセス不良
TNYFSC(R)!Rev-3.30e [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300p MPG-303(PG 1 3)MODE5│6]m404
06000
MPC-816X
改版 z 2.30e(971218)
TNYFSC(R)!Rev-2.30e [VER-Zmx1729]
Copyright(C)by ACCEL CORP/BC-SOFT
[255p MIF-816Zs-task MODE1 4]m404
MODE 変更に関する不具合
06100
MPC-816X
改版 P:3.30e/m405 , Z:2.30f/m405 (980108)
TNYFSC(R)!Rev-3.30e [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300p MPG-303(PG 1 3)MODE5│6]m405
MIO−248K ID抵抗アレイ逆対応
06200
MPC-816X
RS―232Cの送受信例 (980122)
実験したMPCのREV
TNYFSC(R)!Rev-3.30e [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300p MPG-303(PG 1 3)MODE5│6]m405
機器構成
プログラミングポート FTM
MPC
ユーザーCHターミナル
サンプルプログラム
10
CNFG# 4,0,2
20
'ABCDE
30
PRINT# STR(-1)
←ユーザーCHにABCDE<cr><lf>と出力
40
'TEST
50
PUTS# STR(-1)
←ユーザーCHにTESTと出力(cr・lfは出さない)
60
INPUT# S
←Sに入れることが出来るのは数値だけ
70
PRINT S
80
*LOOP
90
S1=GET#(0)
100
PRX S1
110
IF S1=13 THEN *EXIT
←<cr>ならおしまい
120
GOTO *LOOP
130
*EXIT
140
'OSHIMAI
150
PRINT STR(-1)
RUN
1234
←70行の出力 ユーザーCHターミナルから”1234<cr><lf>”と入力
&H41
←100行の出力 ユーザーCHターミナルから”A”と入力
&H42
←100行の出力 ユーザーCHターミナルから”B”と入力
&H43
←100行の出力 ユーザーCHターミナルから”C”と入力
&H44
←100行の出力 ユーザーCHターミナルから”D”と入力
OSHIMAI
PRINT#、PUTS#はSTR(−1)で1行前のコメント文字列を出力する。
INPUT#は数値データしか受け取れない。
GET#(0)で文字コードを受信できる。
06300
MIF-816,MPG-303
TTL入力のモータードライバーに接続する方法 (980217)
PIF−422(アクセル製)という論理レベル変換I/Fを利用した接続例です。
PIF−422は差動入力タイプに使用するI/Fですが、論理出力にも以下のように使用できます。
接続は以下のとおりです。
PIF-422
MOTOR DRIVER
J2
16P/PULSE
U
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
+5V
XCW
+5V
XCCW
+5V
YCW
+5V
YCCW
+5V
UCW
+5V
UCCW
+5V
ZCW
+5V
ZCCW
CW-P
1
CCW-P
2
74HC14
U
1
Y軸
AY
2
74HC14
X軸
GND
Z軸
J3
BS4P
+DC
NC
GND
FG
AY
1
2
3
4
GND
DC24
GND
06400
MPC-816X
MPC−816のリアルタイムデバック (980219)
タスク0をEND終了するとプロンプトが返ってきます。子タスクが動作した状態でFTMからコマンド入力でき
ます。
プログラムを変更すると子タスクは停止します。
IOC、Ctrl+Mも使えますが、実行中にMPCからPRINT出力があると正常に機能しません。
Ctrl+Aではプログラムの停止ができません。Ctrl+]で停止となります。
10
FORK 1,*TASK1
←子タスク起動
20
END
←タスク0終了
1000
*TASK1
←タスク0は終了しても子タスクは動きます。
1010
FOR I=0 TO 255
1020
OUT I,-1
1030
TIME 50
1040
NEXT I
1050
GOTO *TASK1
>RUN
>PR IN(-1)
←PRINTコマンドでリアルタイムに確認
40
>
←Ctrl+Mで実行行の表示
TASK1 1030
TIME 50
>
←Ctrl+]でプログラム停止
TASK 0 # 32767
>
TASK 1 # 1030
06500
MPC-816X
MPCの交換手順 (980219)
拡張 I/F
MIF-816
CPU
MPC-816
①稼働中(装置)のMPCへFTMを接続してプログラム・ポイントデータを保存(SAVE・PSAVE)して
下さい。
②MPCの電源を切り、ボードを交換して下さい。
(MIF−816がBUSボードに挿入されています。MIFのI/Oコネクターを持つと脱着作業が容易です。)
③新しいMPCに電源を入れ、FTMを接続して初期化して下さい。
>MPCINIT<cr>
>ERASE<cr>
*
>
④ ①で保存したプログラム、ポイントデータを読み込みます(LOAD・PLOAD)
MPC内のデータに問題がある場合はバックアップしてあるものを読み込んでください。
⑤FTMを接続したままRUNをしてフラッシュROMへの書き込みと動作確認をしてください。
RUN<cr>
Programming the FLASH ROM *++++++++
>
このとき、装置を動作させたくない場合はFWRITEとしてください。フラッシュROMへの書き込みだけを
行います。
>FWRITE<cr>
*++++++++
>
06600
MPC-816X
子タスクの状態の違いによる実行スピードの測定実験 (980224)
子タスクの状態を変えて(LOOP,END,PAUSE)、①のFOR∼NEXTに要する時間を測定しました。
②は子タスクを7本起動してLOOPさせています。
③は一旦起動したタスクを自殺させています。(タスク0が起動するまでに全ての自殺が完了するように80にTIME
を入れてあります)
④は起動してPAUSEしています。
結果は①とEND終了した③、PAUSEで停止中の④は同タイムです。
①測定区間
PUT &H15 ←スタート信号
FOR I=1 TO 1000
NEXT I
PUT &H16 ←ストップ信号
【結果】97mSEC
③子タスクをEND終了させた場合
150
*SUBTASK
160
IF A=1 THEN *SUBTASK
165
END ←②のプログラムにENDを追加
170
GOTO *SUBTASK
【結果】97mSEC
④子タスクをPAUSE
10
FORK 1,*SUBTASK
20
FORK 2,*SUBTASK
30
FORK 3,*SUBTASK
40
FORK 4,*SUBTASK
50
FORK 5,*SUBTASK
60
FORK 6,*SUBTASK
70
FORK 7,*SUBTASK
80
TIME 10
90
PAUSE 1,2,3
100
PAUSE 4,5,6
110
PAUSE 7
②子タスクがを7本起動
10
FORK 1,*SUBTASK
20
FORK 2,*SUBTASK
30
FORK 3,*SUBTASK
40
FORK 4,*SUBTASK
50
FORK 5,*SUBTASK
60
FORK 6,*SUBTASK
70
FORK 7,*SUBTASK
80
TIME 10
90
PUT &H15
100
FOR I=1 TO 1000
110
NEXT I
120
PUT &H16
130
'
140
END
150
*SUBTASK
160
IF A=1 THEN *SUBTASK
170
GOTO *SUBTASK
【結果】147mSEC
120
TIME 10
130
PUT &H15
140
FOR I=1 TO 1000
150
NEXT I
160
PUT &H16
170
'
180
END
190
*SUBTASK
200
IF A=1 THEN *SUBTASK
210
GOTO *SUBTASK
【結果】97mSEC
06700
MPG-303
MPG停止状態の判定方法 (980302)
BSY()の戻り値でMPGの停止状態を調べることが出来ます。
センサー停止状態でBSY()は15を返します。
BSY()戻り値
0:MPG動作中。ただしJOGコマンドをのぞく。
1:MPG正常終了、コマンド待ち状態。
15:STOP 1コマンドにより減速停止。
240:STOP 2コマンドにより急停止。
3:OVRUN設定によって停止。
10
MODE 5
20
PG 1
30
ACCEL 5000
40
FEED 0
50
STOP 3,0,1
60
RMOV 1000,0
70
WAIT BSY(1)<>0
80
IF BSY(1)=15 THEN *SENSOR
90
ELSE_THEN *OTHER
100
*OTHER
110
'OTHER STOP
120
PRINT STR(-1)
130
END
140
*SENSOR
150
'SENSOR STOP
160
PRINT STR(-1)
170
END
>RUN
OTHER STOP
>RUN
SENSOR STOP
←パルス発生中にSW(0)をTURN ON
>
06800
MPC-816X
RS−232CユーザーチャンネルのXON/XOFF制御について (980303)
■1■■ MPC−816のXON/XOFF制御について
(1−1)ユーザーズマニュアル(改訂第2版以前)の誤り
コマンドリファレンス「CNFG#」の解説中に矛盾した表記があります。
【誤】
A2:パリティ選択
0:偶数パリティ
1:奇数パリティ
2:偶数パリティ XON/XOFF付き
3:奇数パリティ XON/XOFF付き
【正】
A2:パリティ選択
0:偶数パリティ XON/XOFF付き
1:奇数パリティ XON/XOFF付き
2:偶数パリティ
3:奇数パリティ
以下の部分は間違いありません。
◆A1∼A3を省略するとパラメータの一覧が表示されます。
CNFG# a1 a2 a3
if a1 = -1 then clr CH0 : CNFG# -1
a1 for mode 0:NP7B1S 1:NP7B2S 2:P7B1S 3:P7B2S
4:NP8B1S 5:NP8B2S 6:P8B1S 7:P8B2S
a2 prty+xon 0:EVEN
1:ODD
←XON/XOF制御有り
a2 prty+xof 2:EVEN
3:ODD
←XON/XOF制御無し
a3 for baud 0:INHB
1:19.2k 2:9600 3:4800
4:2400
5:1200
6: 600 7:INHB
(1−2)MPC−816のXON/XOFF制御は一方通行です
XON/XOFFを有効設定にした場合には、接続機器からMPCへのハンドシェークが有効になります。
MPCから接続機器へはXON/XOFF信号は出力されません。
接続機器からMPCへ大量のデータを送信するとMPCがエラーになることがあります。
MPCのXON/XOFFは低速な接続機器へデータを出力することを想定した仕様です。
(この仕様を設定した当時(10年ほど前)の通信機器は非常に遅かった)
MPCの受信バッファ(64BYTE)も大きくありません。
受信後の処理時間も考慮して十分なインターバルをとり、通信によるハンドシェークを行って下さい。
■2■■エラーになる通信サンプル
(2−1)MPCの処理が間に合わない場合
ボーレートを9600にして接続機器から1234567<cr>を連続して送信します。
MPCの処理が間に合わず、文字こぼしやOut of Range エラーとなります。
10
CNFG# 6,2,2
20
*LOOP
30
INPUT# A
40
PRINT A
50
IF A=0 THEN *END
60
GOTO *LOOP
70
*END
80
END
>
RUN
1234567
13457
1234567
# 30
!! Out of Range
←9600ボー
(2−2)送信データが3バイト(7FFFFF)を超える場合
(2−2−1)3バイト内では正常に受信できます。
>CNFG# 6,2,3
>INPUT# A
>PR A
1111111
(2−2−2)3バイト内でも7FFFFF以上の正の整数は異常な数値となります。
>CNFG# 6,2,3
>INPUT# A
←11111111
>PR A
-5666105
(2−2−3)3バイトを超えるとOut of Rangeエラーです。
>CNFG# 6,2,3
>INPUT# A
!! Out of Range
>PR A
-6329401
(2−3)一度に入力するデータ数が多い場合
複数データの一括入力を連続して行うと、正常なサイズの数値、遅い通信スピードでも
エラーになることがあります。(XON/XOFFにに関連します。)
10
20
25
30
40
45
50
60
70
80
>RUN
12345
12345
12345
12345
12345
12345
12345
12345
# 40
!! Out
CNFG# 6,2,3
*LOOP
S=TST#(0)
WAIT RS(1)>17
INPUT# A,B,C
PRINT A,B,C
IF A=0 THEN *END
GOTO *LOOP
*END
END
23456
23456
23456
23456
23456
23456
23456
23456
34567
34567
34567
34567
34567
34567
34567
34567
of Range
■3■■自動運転中のエラー表示の確認方法
(3−1)赤LEDの点滅
!! Out of Range などのランタイムエラーになると
a)FTMを接続した状態ではメッセージ表示
b)自動運転時には赤LEDの点滅
となります。
(3−2)メッセージの再表示
自動運転中のエラー内容を確認するには
エラー発生中にFTMを接続し、Ctrl+]キーかMONコマンドを実行すると
エラーメッセージが再表示されます。
TNYFSC(R)!Rev-3.30e [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300p MPG-303(PG 1 3)MODE5│6]m405
>
←FTMでCTRL+]キーを押す
TASK 0 # 30
!! Out of Range
>MON
TASK 0 # 30
!! Out of Range
←MONコマンドを実行する
06900
MPC-816
MS−EXCELでポイントデータを扱う (980309)
EXCEL(Ver7.0)でポイントデータを編集して、PSCフォーマットで保存する方法
①EXCELでMPC−816のポイントデータ
の書式に従ってデータを作成します。
【ポイントデータの書式】
SETP_p_x_y
←P(p)の xy データ
STPZU_p_z_u
←P(1)の zu データ
“_”はスペース(またはカンマ)
②「名前を付けて保存」で保存します。
④保存されたファイルをエディターで
開くと..
SETP
STPZU
SETP
STPZU
SETP
STPZU
SETP
STPZU
1
1
2
2
3
3
4
4
1
1
2
2
3
3
4
4
③保存するファイルの名称、種類を設定します。
ファイル名を ""(ダブルコーテーション)で囲み、拡張子を.PSCにします。 例)"Test.PSC"
ファイルの種類はテキスト(スペース区切り)にします。
⑤保存されたファイルの文字間にはいくつものスペースがありますが、MPCへの読み込みには支障ありません。
1
1
2
2
3
3
4
4
PSCフォーマットのポイントデータをEXCEL(Ver7.0)に読み込む方法
①ファイルを開くで
ファイル名を 「*.PSC」
ファイルの種類を「テキストファイル」にして
読み込むデータを指定します。
(以下テキストファイルウィザード)
②データの形式は「カンマやタブなどの区切り文字によって∼」
④このまま「完了」
③列の区切り文字で「スペース」を指定。
⑤読み込み後
07000
MPC-816K
改版 P3.50b,Z2.50 / モニタ K8a6。
K8a6。 V_SWAP
V_SWAP 追加、BUG Fix
Fix 等(980317)
MPC-816K update
1998
1998 年 3 月 17 日
関係各位ご協力により現在までのアップデートにて816k beta2 リリースします。
今回は、V_SWAP対応のために、ブート部分も更新となりますので、フラッシュROM交換ください。今後は
システムローダによるソフト変更のみです。
モニタ
P版
Z版
l
K8a6
REV-3.50b
REV-2.50
モニタのアップデート
TST#(0)のバグフィクス
CNFG#のバグフィクス(XON,XOFF,7ビットキャラの7Fマスク)
l 機能追加、Z版P版の切り替え
V_SWAP
Z,P版の切り替えをサポート。フラッシュROM上でのデータ変更のためCHGREVのようにRAM化け障
害はありません。
切替え回数は128回以内。K版は出荷時にZ,P両データ搭載
V_SWAP実行後、パワーオンリセットして、MPCINIT,ERASEを実行して初期化してください。
TNYFSC(R) Rev-3.50b [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300p MPC-816K MPG MODE5│6]K8a6
>V_SWAP
TNYFSC(R) Rev-2.50 [VER-Zmx1729]
Copyright(C)by ACCEL CORP/BC-SOFT
[255point MPC-816K MODE1 4]K8a4
>MPCINIT
>ERASE
*
>
l
Pバグフィクス・機能追加
M()バグ
M(0)−M(1199)がプログラムエリアと重複していた。
AR<ret>
配列ARの表示
10
FOR I=0 TO 31
20
AR(I)=I
30
NEXT I
Programming the FLASH ROM *++++++++
>AR
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
>
M<ret>
配列Mの表示
10 FOR I=0 TO 5999
20 M(I)=I
30 NEXT I
Programming the FLASH ROM *++++++++
>M
M(0): 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
(中略)
M(176): 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
(表示終了はQキー)
VLIST<ret>
これは以前からありますが、変数の一括表示
RUN nn
フラッシュROM固定を行わなかったのを行うことに変更
10
FOR I=0 TO 31
20
GOSUB 1000
30
NEXT I
1000 *SUB
1010 AR(I)=I
1020 RETURN
RUN *SUB
Programming the FLASH ROM *++++++++
←いままでは無かった
# 1010
!! Out of Range
←サブルーチンを実行するとこのエラーになります。
>
07100
MPC-816X
MPCINIT
MPCINIT の変数の初期化の有無(980319
(980319)
19)
P版はMPCINITコマンドで初期化されますが、Z版はMPCINITでは初期化されません。
【P版】 TNYFSC(R)!Rev-3.30e [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300p MPG-303(PG 1 3)MODE5│6]m405
>A1=1
>A2=2
>VLIST
A0 9,A:
←P版はVLISTコマンドで変数の一括表示ができます。
0 1 2 0 0: 0 0 0 0 0: 0
(略)
>MPCINIT
←初期化で全部0
>VLIST
A0 9,A: 0 0 0 0 0: 0 0 0 0 0: 0
(略)
【Z
Z版】 TNYFSC(R)!Rev-2.30f [VER-Zmx1729]
Copyright(C)by ACCEL CORP/BC-SOFT
[255p MIF-816Zs-task MODE1 4]m405
PRINT A1 A2
1 2
>MPCINIT
>PRINT A1 A2
1 2
>SETVAR A0 Z 0
>PRINT A1 A2
0 0
>
←MPCINITでは変数は初期化されません
←SETVARコマンドで範囲と初期値を指定します。
07200
MPC-816X
最大プログラム行数と文番号(980319
(980319)
19)
TNYFSC(R)!Rev-3.30e [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300p MPG-303(PG 1 3)MODE5│6]m405
32760
ON 0
32765
OFF 0
32766
ON 1
32767
OFF 1
!! Out of Range
←P版のプログラムは最高2044行です
←文番号は32766以下です(P,Z共通)。
07300
MPC-816X
MPC−816の演算(980324
(980324)
24)
MPC−816で扱う数値はすべて整数(P版3Byte、Z版2Byte)です。
少数は全て切り捨てです。
>A=10
>A=A/3
>PR A
3
>A=11
>A=A/3
>PR A
3
>A=12
>A=A/3
>PR A
4
07400
MPC-816K
改版 Z2.50a
Z2.50a / モニタ K8a7
K8a7。Z 版 BugFix
BugFix 等(98040
(980407)
407)
MPC-816K update
1998
1998 年 4 月 7 日
関係各位ご協力により現在までのアップデートにて816k beta2 リリースします。
モニタ
P版
Z版
l
K8a7
REV-3.50b
REV-2.50a
MODE3,4 の修復
モニタのアップデート
k97a 瞬間停電の検出
TST#(0)のバグフィクス
CNFG#のバグフィクス(XON,XOFF,7ビットキャラの7Fマスク)
l 機能追加、Z
Z版P版の切り替え
Z,P版の切り替えをサポート。フラッシュROM上でのデータ変更
V_SWAP
のためCHGREVのようにRAM化け障害はありません。
切替え回数は128回以内。K版は出荷時にZ,P両データ搭載
V_SWAP実行後、パワーオンリセットして、M
MPCINIT,E
ERASEを実行して初期化してください。
l Pバグフィクス・機能追加
M()バグ
M(0)−M(1199)がプログラムエリアと重複していた。
AR<ret>
配列ARの表示
M<ret>
配列Mの表示
VLIST<ret>
これは以前からありますが、変数の一括表示
RUN nn
フラッシュROM固定を行わなかったのを行うことに変更 P版のみ
※07000 と重複する内容があります。
07500
MPC-816K
改版 P3.50c Z2.50b
Z2.50b / モニタ K8a8
K8a8。Ctrl+A
Ctrl+A で出力 Reset
Reset 他(980413
(980413)
413)
【BUGFIX】
BUGFIX】
Ctrl+A で出力がリセットしてしまうのを改善しました。
TNYFSC(R) Rev-3.50c [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300p MPC-816K MPG MODE5│6]K8a8
TNYFSC(R) Rev-2.50b [VER-Zmx1729]
Copyright(C)by ACCEL CORP/BC-SOFT
[255point MPC-816K MODE1 4]K8a8
【Additional Commands】
Commands】
① P_SWAP
P 版から Z 版へ移行
② Z_SWAP
Z 版から P 版へ移行
※コマンド実行後はPower On Reset & 初期化
TNYFSC(R) Rev-3.50c [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300p MPC-816K MPG MODE5│6]K8a8
>Z_SWAP
←Power On Reset
TNYFSC(R) Rev-2.50b [VER-Zmx1729]
Copyright(C)by ACCEL CORP/BC-SOFT
[255point MPC-816K MODE1 4]K8a8
>ERASE
*
>MPCINIT
>