MPC-684 9/4/2007

MRS-402 09/17/2001
MPC-68K* 12/15/2005
MPC-816X
MPC-816K 11/13 2008 *ふたたび四年ぶりの改版
MPC-816KF 4/23/2004 V5

USB-LNK 5/31/2004

MPG-405 3/31/2000
MPG-303 5/7/99


MPC-684 注意 *システムローダは19200bpsで使用してください。*MPCINIT必須です。
2008
6/25 REV-3.87d 13slot フル実装時でSLINK,MBK-SHなどを同時併用するとMPCLNKのメール読み出しが不安定になる場合があったのを解消。
2007
9/4 REV-3.87c 文字列演算比較等で使用する内部文字列の制限を254文字までとした。(これまでは126文字以内))
8/31 REV-3.87bMPC-CUNET6 対応バージョン MPC-CUNET6.pdf

6/28 REV-3.36p 予約変数PG_TASK0追加 n mpcinit & new でメモリIOをクリアするようにした。
5/29 REV-3.86n MPG-314 STPSコマンド STPS Xn Yn Un Zn でYn,Un,Znに演算がはいるとXの現在位置が間違って設定される。
4/20 REV-3.86m MPG-314搭載MCX-314AsIC-BUG対策バージョン 関数rr(n_A)に不具合対策が組み込まれています。
3/12 REV-386g INPUT文強化 タイムアウト、入力バッファクリア機能追加 コマンドリファレンス を参照。
3/1 REV-386e IO SCAN機能 Update 評価中*
入力例: SCAN EOR_MASK|&HFF01 IN(24) X(1) &H400 X_A

2/23 REV-386d ACCELコマンドのPPS/S設定オプション追加(説明文書) なおIO_SCANはベータのままです。
2/7 REV-386c ベータ
IO SCAN機能。 5msecサンプリングでIOの変化を記録する。386->386b 2/12 初期化・メモリ配置のバグフィクス
機能変更 SCAN EOR_MASK|&HFF01 IN(24) X(10) &H400 Z_A
PGアドレスと軸追加


2006年
9/11 REV-385y MBK-RS有効時に日付時間が読み取れなかったバグを修正。
9/4 REV-385x 4点パレット(変形四角形)対応 PALET P(1) P(2) P(4) m n 4四番目の点を指定すると4点を使用してパレット計算します。三点指定の場合は従来どおり。
1/18 REV-385w pg -1でMPG-314のセマフォ解除 プログラム保護機能追加 ROM nnn  + RUN でlist lock, 後 ROM nnn + RUN で解除。 nnnは、4byte長変数です。
    lock状態でもプログラムの転送とRUNによるROM固定は可能です。list,saveができなくなるだけです。
-2005-
12/05 REV-385v! (download) 実験バージョン セマフォ・クリア
8/08 REV-385r (download) 1)FASTコマンドの解除。"fast 0"で解除できます。
   2)sftr/sftl にmbk(n)という第二引数を与えると、操作した配列要素をmbk(n)の上に複写します。注)nは定数に限ります。~Lng指定も可能ですが、記述は"100~Lng"のように"定数+~Lng"に限定されます。
6/16 REV-385q (download) REV-385oおよびREV-385pの、SLINKに対するON/OFFコマンドのバグFIX。

重要--REV-385o
およびREV-385pの、SLINKに対するON/OFFコマンドにバグがありました。--

6 /6 REV-385p (download) MBK-SH読取不良対策。 6slotで四枚以下の小規模ボード構成で誤読取する場合がありその対策版。
1/31 REV-385o (download)
VLIST 修正 MOVT 移動距離が0,0の場合のPG暴走回避のため移動距離0,0の場合内部でスキップ  PR P()の中の式解析を汎用化 slink ON/OFF/OUT のセット&ベリファイの強化 OUTについてはベリファイまでの時間が短すぎたのを改修。この修正に不安定要素あり、385qで修正。

--2005--
5/14 REV-385n(download) GETDGの返す値を-89.999.....〜270にした。+ M_INPに読み取りポインタのクリアを追加(昔に戻した)。
4/19 REV-385l(download) 擬似カレンダ機能追加(この機能はユーザ責任使用のマニュアルに記載されない非公式機能)
3/30 REV-385k(download) timer変数のバグフィクス *timer変数がsysclkと同じになっていた。

3/26 REV-385j(download)
1)MBK_SHのtime$,date$バグフィクス
2)ch_movs DS_CHMVOSスイッチ追加 J_CHMOVSをONにしてある場合、ON DS_CHMVOSで、ch_movsはかならず、停止待ちのつぎはぎ動作になる。
3)
RMVS x VOID u z,RMVL VOID y u zという記述を可能にした。

3/12 REV-385h(download)
 
MPG-314読み込み二度読み化(現在位置値、取得の耐ノイズ性のため) date$="20XX-XX-XX"を設定すると、TIME$が有効になる。
3/09 REV-385f(download)
GETDG倍率指定の場合のバクフィクス。10000以外の倍率を指定すると、他の象現ででたらめな値を返した。また、45度を越える角度に対しては、内部で90度-x/yを実施。
AFFIN変換の倍率指定。AFFIN -1 n で倍率指定。AFFIN -1を実行しなければ、10000の倍率が適応。
2003年】
12/03 REV-385e(download)
PULSE_OUT port 0 pulse_outの機能拡張です。左のように第二引数に0をセットすると点滅即停止となります。
11/07 REV-385d(download) *385cには無期限on/offにバグがあり修正しました。
PULSE_OUT修正: パルス出力数を指定しないと32767回でON,OFF停止としていましたが無期限にON,OFFを繰り返すように修正しました。
注)点滅開始したポートの停止は、on/offカウント数を1などの有限回に設定して停止させてください。
例*PULSE_OUT 1 1 1 ,二番目の引数(点滅間隔)に0を入れると停止したように見えますがポートをONにするなど異常な動作が発生し、その後の処理も異常になります。

JMPZ修正: MPG-314のJMPZコマンドがマニュアルの記述と異なっておりました。この385dでバグフィクスとしてマニュアルに整合させました。
しかし長い間放置されたバグであったため、既成事実として使用されている恐れもありましので、mpcinit後、確認コマンドを実行するまで、JMPZを動作しないようにしてあります。
"JMPZ -1"を一度実行すれば、警告メッセージが出なくなり、正常なJMPZを実行します。MPG-68K,MPG-405についてはこの手続きは発生しません。

10/14 REV-385a(download)
CH_MOVS修正
CH_MOVSは、S字設定をした場合の減速領域で実行されると減速領域が正常に確保できなくなります。(S字を使用していなければこの問題は生じません)
この問題の回避のために、システムメモリIO"J_CHMOVS"もうけCH_MOVSの機能を追加しました。

ON J_CHMOVS
上記実行後、減速領域でCH_MOVSが実行されると、一旦パルス出力完了待ちの上、継続して目的地までのパルス出力を実施します。複数の軸が制御されている場合、どれかひとつの軸が減速領域にはいっていても、全軸パルス出力完了待ちの上継続移動となります。この機能は、 OFF J_CHMOVS で解除できます。

*CH_MOVS使用上の注意。
CH_MOVSの実行されるタイミングが、パルス出力し終わる頃に実行される場合、低い確率ではありますが、CH_MOVSのコマンドが無効になる場合があります。
これは、ICの行き先変更機能がパルス発生中のみに有効であるためです。パルス発生がすでに終了していれば、CH_MOVSは改めて移動コマンドを設定する必要があります。
このため、CH_MOVSがパルス出力終了直前に実行された場合に、このシステムの分岐動作が正常に働かなくなる危険性が生じます。
したがって、CH_MOVSを実行するタイミングで動作各軸がどのような状態にあるか見積もっておき、もし上記のような危険性がある領域で実行される場合は、CH_MOVS実行後の実位置を確認する必要があります。


このバージョン(385以後)よりMPCLNK2アクセス信頼性向上のため、MPCLNK2専用となっています。旧MPCLNKにアクセスできません。

9/1 REV-384r(download)
MPCLNK2アクセス不良対応版(MPCLNKに対するアクセスのみ遅くしたもの)

8/5 REV-384q(download)
WAIT 条件式 TMOUT arg で、TMOUTの誤記を検出するようにした。

WAIT TMOUTの詳説
1)WAIT TMOUTの設定値の限界は327670です。327秒(5分)以上の値を設定すると期待通りに動作しません。
2)WAIT TMOUTはSYSCLKを使用します。このためWAIT TMOUT使用中は、SYSCLKを変更しないでください。
3)SYSCLKはパワーオン後124日を経過しますと、負の値をとるようになりTMOUTの計算が正常にできなくなります。124日以上継続稼動する可能性がある場合、SYSCLKをクリアする操作をプログラム中に追加してください。


5/20 REV-384p (download) 
CONST 100 100がエラーで落ちないために、CPUが停止してしまう。エラーとした。

5/13 REV-384o (download) 
RAMのアクセスマージンを変更する機能を追加しました。FCLKの引数に684を与えると動作速度がMPC-684DIP版と同一になります。
記述例: 1 FCLK 684
*MPC-684Fは684(DIP)版に対して、25%程度高速化されています。
*MPC-684Fは68Kにくらべて、約2.2倍速です。MPC-684(DIP)版は68K比較で1.7倍速でした。
*8/6加筆 MPC-684FをDIP版の保守・リピート品製作に適用する場合・MPCLNK2のメール通信が不安定になる場合は684DIP版互換モードで使用してください。

4/23 REV-384m (download) *384m以前のダウンロードはできません。384mで安定版です。
S_RNG -2
MPCLNK: on/off/swの11000以上は二枚目以後のMPCLNKという切り替えをなくす。パワオンリセットで、この設定は解除される。
out 10125以後のエリアとon/off/swを整合させる特殊コマンド。
S_RNG -1はマニュアルのとおりで、レンジの解除のまま。

REV-384l
CHK_IN_BOX P(k) P(m) P(n)
*CHK_IN_BOXは省略形BOXが使えます。
P(k)がP(m),P(n)の構成する四角の中にはいるかどうか
計算し、もし入っていなければマルチステートメントの
後ろの行を実行する。実行されるマルチステートメント
は行の許す限り追加できる。
注1)P(m),P(n)の順はきにしなくて良い。
注2)通常右の例のようにエラーのマルチステートメント
部分はGOTO文のほうが見通しが良い。
110 SETP 1 -1000 2000 0 0
120 SETP 2 -2000 4000 0 0
130 SETP 3 -3000 5000 0 0
140 CHK_IN_BOX P(2) P(1) P(3) : GOTO *out_of_area
150 RMVS X_A 1000
160 CHK_IN_BOX P(2) P(3) P(1) : GOTO *out_of_area
170 RMVS X_A 1000
180 CHK_IN_BOX P(1) P(2) P(3) : GOTO *out_of_area
190 RMVS X_A 1000

REV-3.84K
PULSE_OUT port time count
port 出力ポート port 0は使えません
time 時間 0.1秒単位で指定します。
count 回数です。回答を指定しないと32767回となります。
ワンショットから回数指定までできるON/OFFパルス出力コマンドです。
注1)一度に制御できるポートは24ポートまでです。
注2)TASK 30を使用しています。
このコマンドは新出のため当面暫定仕様とさせていただきます。
#PULSE_OUT 10 1 1
#PULSE_OUT 20 10


ポート10を0.1秒ワンショットオンします。
ポート20の点滅を一秒ON一秒OFFで繰り返します。


REV-3.84j
WAIT 条件式 TMOUT 時間
WAIT文にタイムアウト機能が付加されました。
右例のように条件式のあとにTMOUTと
時間を指定してマルチステートメント部分にタイマアウト処理を書きます。

TMOUTがなければWAIT文の通常仕様になります。
注)2/20に仕様修正しました。
50 *aho
60 WAIT s==1 TMOUT 1000 : GOTO *err
70 ON 0
80 TIME 100
90 WAIT s==1 TMOUT 1000 : ON 128 : GOTO *err
100 OFF 0
110 TIME 100
120 GOTO *aho
130 *err


REV-3.84b MBK-RSでIOエリアの100番地を超える書き込み要求があったらエラーレスポンスを返す。
REV-3.84a カウンタ読みとりX(-1),X(-2,A)の拡張。
 X(-1) エンコーダカウンタを読みとる。
以下の関数はjogダイヤル(エンコーダ)を使用したティーチング機能に使用します。
 X(-2,A) エンコーダカウンタを読みとりAを乗じた上で、カウンタをクリアする。 *こちらではPGコマンドで指定されたMPG−314からの読みとり。
 X(&H4x0,A) x=0~9
エンコーダカウンタを読みとりAを乗じた上で、カウンタをクリアする。アドレス値(&h400~&h490)で直接MPG−314を指定することができる。以下の例は&h400のMPG−314に接続されたJOGダイヤル(ロータリ・エンコーダ)の操作に従い、&h410のX軸を制御。
PG &H410
DO
RMVS X_A X(&H400,20)
LOOP
*すみません。手違いで3.83〜をとばして3.84としてしまいました。

REV-3.83
 MPC-684F対応版 FR8M/16M対応
REV-3.82z DS_WARP ON DS_WARPするとWARP移動の目的点のワープがゲートモーションになる。低速度での引きずり対策OFF DS_WARP,バワーオンリセットで解除。

--ここよりMPC-684Fと統合システムになる。684(DIP)では"<--DIP model-->" の表示があります。

REV-3.82y マルチステートメントを含んだプログラムのロード速度の向上。 150kbyte19200bpsで185秒のものが96秒になりました。
REV-3.82x GOSUB *label arg バグ修正 引数を演算にすると、誤作動する。
REV-3.82w GETF45のバグ修正と精度強化
REV-3.82v バグフィクス PGSEL (TEACH のTAB含む)がMPG-314に対して正常に動作しない。
REV-3.82u バグフィクス MOVT,RMVT自移動距離が短くなるとハングアップする場合があったのを修正。
MOVT詳細システムパラメータ追加
CHG_MOVT   on CHG_MOVTでMOVT優先実行となる。細かいつぎはぎ移動対応。
MSK_MOVT STS_MOVT MOVT実行前に、OFF MSK_MOVT STS_MOVTを実行し、MOVT終了後にSW(STS_MOVT)が0のままなら移動に継ぎ目がなかった。

REV-3.82t バグフィクス PRSET_ACCEL 自起動速度の復旧が不完全だったのを修正
REV-3.82s コマンド拡張 dimcpy 拡張  DIMCPY MBK(n) MBK(m) k MBK(n)からk個 MBK(m)へコピーする。ワード単位のみ。
REV-3.82r コマンド拡張 GETFの最初に45をいれると10進法の四捨五入で整数化する。
10 CALF "F0=1.5"
20 GETF 45 a
30 PRINT a
40 CALF "F0=1.4"
50 GETF 45 a
60 PRINT a
run
2 <--切り上げ
1 <--切り捨て
#
*通常の整数化は浮動小数点演算の丸め整数化の規則にしたがい、算術計算の四捨五入とは異なる。

REV-3.82q コマンド追加
CLR_OUTP [n]




nを略すと MOP,SLINK,MBKIOエリア,MemoryIOすべてクリア。 nにビット値を与えると指定された領域だけ
1 MOP
2 SLINK
4 MBK
8 Memory IO
CLR_OUTP 3 SLINKとMOPのみクリア
REV-3.82p S字加減速の扱い修正。これにより、MOVS,RMVS,MOVL,RMVL,MOVT,RMVTなどの定量移動中にも速度変更可能となった。
REV-3.82o IFf THEN構文にTHENが無いときにロード中にエラーとなるようにした。以前はランタイムで発生しエラー処理のデバグに手間取ることが多かった。
REV-3.82l MBKバックアップデータの整合化 a=MBK(-4) aはダミー変数。関数引数に-4を指定すると全データエリアダミーリード 80m秒
--以下マニュアルに掲載されました。--昔の話はこちら--

MPC-816KF V5

MPC-816KF V5ではプログラムエリアを2298ステップに拡張しました。このアップデートは構造上かなり無理があります。
このためベータ試用版としてのアップですので、お客様各位"自己責任"にて御使用ください。
細部でのコマンド非互換、特定コマンドでの暴走が予想されます。
なお、致命的なバグフィクスについては数行の問題指摘プログラムなどをメールにていただければtech-sp@accelmpc.co.jp優先的に解消させていただきます。
また、不具合の指摘については、816KF出荷バージョンで必ず動作の確認をとってからご連絡ください。

現在サポート完了したつもりの機能
 基本的なIO制御 RS-232,SOFT_PG,MPG-303F,X_PLS、Y_PLS,M配列,パレット機能 (いろいろ問題はあると思います。)
サポート予定の無い機能
MIF-816AD,MPC-LCD,MBK-816,MPG-301、KEYコマンド等
現在判明している治せない不具合
 INPUT#を使うと他タスクの変数計算がおかしくなる。
改版履歴
; 2004 4 23 5.01d フラッシュROMからのプログラムロード修正。
; 2004 4 21 5.01c 点配列への代入処理のあやまり修正。


==上記文章同意の上ダウンロードします 5.01d 4/23/2004 updated==
==上記文章同意の上ダウンロードします 5.01c 4/21/2004 updated==

USB-LNK
REV-105 download #2〜 スレーブモード・サポート


MRS-402
MRS402c010917XX 9/17版(
Download) 38400対応しました。(内部処理を簡素化)
MRS402c010214XX 2/14版
(Download)


MPC−68K


オフィシャル・ダウンロードのみとします。
REV-2.69c 2005 9/15 bug fix MPC-LNK2 バグフィクス オフィシャル・ダウンロードに掲載
以下2.69cの内容
*MPC-68Kからmpclnk2のメールの呼び出しで稀に字トビが発生。このため、LNK2の読み出しのために、1回バッフアに展開して再読み込み比較を設けた。
( Download) s,m,l/3model

2.69b ひとつ上の点配列に1711276032~1728053247(&H66XXXXXX)の範囲の数を設定すると、X(n),Y(n),Z(n),U(n)=xxxが停止するバグを修正
2.69a p_sv,p_ld 点データのフラッシュ保存サポートが2.68iより破損していました。修復済みです。
2.69 再アップ Lモデルのデータが破損していたのを修復しました。4/14 PM3
2.69 SLINK/3202問題バグフィクス このバージョンからSLINKは2000/4/11以後出荷のものを使用してください。また既存のSLINK装備のMPC-68Kをアップデートする場合はSLINKのPLD交換も必要となります。
2.68k Getdg 180度バクフィクス tan.c修正
2.68j再度アップ 12/21再アップ データが壊れていました。(PCのスピードとmakeユーテリティが不適合となりバインドに支障をきたしていました)陳謝
2.68j "mpcinit 5" 追加 文字列操作タスクquitの弊害を初期化。ただし"MPCINIT 5"は全タスクに波及。使用、要注意。
2.68i フラッシュ書き込み高速化
2.68h accel long制限解除MPG−405
2.68g MPG-3202reg,st_reg マルチタスク対応
2.68f MPG-3202PLD改版にともないtm_3202取り外す
2.68e MPG-3202 (reg3(),tm_3202) REG3()は3202のバイトレジスタを符号付で読み出します。tm_3202はレジスタ書き込みにn*5msecのディレイをかけます。(タスク毎に設定)
2.68d Slinkパラレルイン、パラレルアウトbugfix setioにslinkクリア追加
2.68b MBK-68 out xx 60090,91 bug fix
2.68a p_svバグフィクス(プログラム中で使用するとスタックオーバーフローで停止するという障害)
2.68 Y2k date コマンド対応 MRS-001コンフィグバグ
2.67 p_sv,p_ld 点データのフラッシュ保存サポート
p_sv 点データをフラッシュエリアに書き込みます。書き込み中(数秒)はマルチタスクが停止しますので、他のタスクの作業が休止中に実施してください。 この時*--という表示があります。*は消去中--は書き込み中を意味します。
p_ld [m,n]フラッシュ保存された点データを取り出して復旧します。引数が無いと全点データ、指定するとその範囲のみ復旧します。
 例: p_ld 100,110 点100から110のみを取り出してp(100)-p(110)に書き込みます。

2.66 MPG-3202サポート
2.65a sense_sw bug fix 特定のIO番号を指定するとハングしてしまうことを解消。
2.65 sense_sw 検出入力 操作出力
----プログラム例-----
説明
SENSE_SW 192 -5
SENSE_SW 193 -6
DO
IF SW(-5)==1 THEN
ON 0
OFF -5
TIME 100
OFF 0
END_IF
IF SW(-6)==1 THEN
ON 1
OFF -6
TIME 100
OFF 1
END_IF
LOOP
検出入力がonすると操作出力をonします。
感度は5msec固定です。
これはシスクロックの固定タイマーのなかで検出しています。
指定できるセンスは8個までです。
パワーオン後、実行された順に登録されます。

2.64b 3slotでのiop検出のバグ
2.62a SLINK OUT Bugfix
2.62 S-LINKサポートMPC-SLINKをサポートしました。2000番以降がSLINKのioになります。
2.61 追加"DS_RTRY n"
#ds_rtry &B10000010
#ds_rtry
&H82
#
このように値を与えるとビット番号に相当するタスクのquickPauseリトライ実行(move,goなど)がキャンセルされる。
リトライをキャンセルするとそのビットはクリアされる。このため、引き続きキャンセルする場合はまた指定ビットを1にしておく必要がある。
引数無しで実行すると現在のビット状態をヘキサ表示します。
追加 5000p5000dim340kprgプログラサイズ拡張版
2.60g ar$()をdestinationに指定した場合括弧内が式であると暴走するバグ<確認中>
2.60f VAL関数にヘキサを追加 a$="12BC" : a$="&H"+a$ : a=val(a$) 副作用<確認中> 
2.60e MPCモードでタスク0がEND停止すると再スタートするバグ修正。 
2.60d MPCモードにするとパワーオンリセットでIOがオンオフしないバグを修正。 
2.68c MBK リアルタイム文番号表示をサポート
2.60b PL(n) ジグザグ 旧MRS−001サポートバグフィクス
2.60a プログラムROM化の細部のバグ修正
2.60 AR$() bug修正、MRSサポートバグ修正、フラッシュROM消去最適化など
2.54c MRS-402(#5,#6)追加 CNFG#5,6,RS5,6,PRINT#5,6,INPUT#5,6
IOPの自動判別のバグが解決されました。2.54b
MRS-402(#3,#4)追加 CNFG#3,4,RS3,4,PRINT#3,4,INPUT#3,4 etc 文字列配列 DIM_AR$, AR$(n)
AR$():高速RS−232cボードと文字配列が使えるようになりました。文字配列のエリアは点データの10000側から下に向かって使用。
REV-2.53c特定のアドレスのメモリが、0となった時に起動不良となる場合があるのをバグフィクスしたもの。2.53bと違いはありません。(12/15/97)
(REV-2.50〜2.52i)をREV-2.53b(12/04/97)Find,Inpblk追加
IOP-048が使用できない。FTM(19200)に対応”ST192”,IOの初期化の問題など(2.52jではtan関数にバグ)



MPC−816X(m401,402,403)をm404
(Download)
mio-816#6からの使用で不具合保守m404に改版
240E対応で不具合が発生m403に改版
(m4xx)はマルチタスクモニタの版数で、最新版では以下のように表示されます。

TNYFSC(R)!Rev-3.30e [VER-PmaX2044]
Copyright(C)by ACCEL CORP/BC-SOFT
[300p MPG-303(PG 1~3)MODE5|6]m404
>


MPC-816K


2008/11/13 3.53t WPLS PLS_MIFの仕様追加

(Download) maintenance updated 10/18 2004


10/18 2004 JMPK.HEX のみ改版(K8bd) MIF-816KF 高ノイズ対策
10/12 JMPK.HEX のみ改版(K8bc)MIO 816モードの240E対応にバグがあったため
7/12 REV-3.53s PGセレクトの保持
7/11 REV-3.53r K8bb HPT()の含まれるプログラムの一回目の実行エラー k8bbはバッテリ無しCNFG#無しで"T"がフリーズするのをfix
6/29 REV-3.53q(K8BA)
MBK-816サポート更新 MEWNET-FPモード対応
4/21 REV-3.53P(K8BA)
SYS()関数追加 パワーオン後1m秒単位でカウントアップしているメモリを読み取ることができます。
カウンタは3BYTE長あるので、149時間まで正常にカウント可能です。引数を0にすると1m秒カウント値が直接返されます。
0でない引数をいれると除算をして返します。SYS(1000)では秒に変換して値を返すことになります。
LIST
10 C=1000
20 B=SYS(C)
30 TIME 1000
40 B=SYS(C)-B
50 PRINT B
>RUN
10 <---10秒を意味します。
>

REV-3.53n(K8B9)
MIF-816ADのAD()関数のの修正。稀に異常データを出力することがある。内部にデータのチェックを設け自動リトライを実施
AD(0)の値が-1,-2のとなった場合は、ボード不良

REV-3.53l(K8B9)
ATAN,SQRTのバグフィクス
REV-3.53k(K8B9)
REG3()追加REG()の符号付
SOFT-PG bugfixおよび機能拡張
FEED 0以外を指定いると異常動作をbugFIXならびにFEED nが0-15までの指定を0-63と細かく指定可能とした。MAX60kでほぼ1kpps単位で指定できる。
また非保証コマンド(バージョン間での互換性が保証できないコマンド)としてFEED 63でSFDLに1000-32000の間の値をいれると低速パルス発生が可能になる。
現在は30000で40pps程度になる。
注意: PG -1ではMPG-303の機能に依存する。JOGコマンドは使えません。YPLS,ZPLSを代用してください。

REV-3.53g(K8B9)
A=TASK(15): POWER ON RESET時A->0 SW RESET A->1 BATERR->2 パワーオンリセットとスイッチリセットを区別
(PG-1) ACCEL 100PPS--->60kPPSまで対応
(PG -1) PULSE: BUG FIX
(PG -1)SHOM,SHMZ: SHOM X X n nはPPS単位で設定 1pss-2000pps
(MPG301) CMND -1,CMND -2 低速クロックモードの対応時 CMND -1を実行/また通常モードでREG/ST_REGはマルチタスク使用可

REV-2.60 Z版TMOUT,フラッシュ書き込みバグフィクス MPCINITでのSHRD 2追加
REV-3.53d MIF-816ADアドレス変更 out_cnt三軸目のバグ修正
REV-3.53a P版でのMIFパルス出力サポート Bug Fix Z軸,home3/12
REV-3.53x P版でのMIFパルス出力サポート開始。この機能については評価中です。ユーザの責任において実施してください。P版でZ版と同様なパルス発生機能を使用できます。
PGの仕様はMPG-303のMODE 5相当です。このため、移動距離が三バイト長になります。ACCEL,MOVE,MOVZ,HOME,HOMZなどの基本的なパルス発生を実現します。

コマンド 変更点
PG -1でMIF-PG
HOME,HOMZ XS1~ZS2をIN16-23に読み替える
OVRUN IN24-31に対して入力停止機能を追加
STOP サポートされません。
MODE 無効です。

REV-3.53 K8b8 数学的関数追加
ATAN n m V SQRT n m V
V= atan(m/n) ; m>n>0 V=root(n*n+m*m)
>ATAN 10000 10000 A
>PR A
4500
>ATAN 10000 17321 B0
>PR B0
6000
>SQRT 3000 4000 V0
>PR V0
5000
>


REV-3.51b(K8b7) out_cset仕様追加 及びdef_rstのバグフィクス
REV-3.51(k8b6) out_cnt in7停止検出追加(オンで停止) 小型液晶表示機能追加

IO_CNT,OUT_CNT ソフトカウンタ
*816に接続されたIOをカウントします。入力にはカウントと方向という二つがあり、三バイトでアップダウンカウントします。これは500pps程度まで対応し3ch用意されます。エンコーダを使用する場合は方向判別ユニットを使って通常のカウントに変換します。
IO_CNT
OUT_CSET
OUT_CNT
195 'COUNTER 1
200 SETVAR C0,C9,0
210 IO_CNT
220 PRINT C0,C2,C4
230 TIME 100
240 GOTO 220
wait マスク 反転
例: OUT_CSET 100 5 4

100:停止後1秒カウンタを監視しつづけます。
5: in8,in10のみ監視
4: in 10はB接点検出となります。
90 'CONT CNTL
100 SETVAR C0,C9,0
110 C1=4
120 C3=5
130 C5=6
140 ON 0,1,2
150 OUT_CNT
in0 count onでカウント C0が変化
in1 up/down offで正onで負
in2 count onでカウント C2が変化
in3 up/down offで正onで負
in4 count onでカウント C4が変化
in5 up/down offで正onで負
*このコマンドはマルチタスクでも有効ですが、
早いカウントには追従できません。
wait
は出力ポートをオフしてから
カウントのオーバシュートを監視する時間

マスク
in8-15のビットパタンです。
in8,in9のみ監視は0011b->3

反転
1にしたビットを論理反転して検出です。
カウント0
in0 count onでカウント C0が変化
in1 up/down offで正onで負
out0,1 C1 <> C0の間on状態でC1=C0でoff
カウント1
in2 count onでカウント C2が変化
in3 up/down offで正onで負
out2,3 C3 <> C2の間on状態でC2=C3でoff
カウント2
in4 count onでカウント C4が変化
in5 up/down offで正onで負
out3,4 C5 <> C4の間on状態でC5=C4でoff
条件停止
in8-in15はout_csetで指定。
非常停止
in6 offでコマンド停止この時out0-5はoffにする。
in7 onでコマンド停止この時out0-5はoffにする。
*このコマンドは条件成立して終了するまで、
すべての割り込みが禁止され、シングルタスクになります。


k8b5 GETN# monitor bug fix Z,P両方とも98/9/9
REV-3.50j(K8b4)
WPLS,VPLS,PLS_MIF追加 (XPLS削除)
PLS_MIF:
ZPLS,YPLS,WPLS,VPLSの出力先をMIFパルスポートに設定することができます。この設定はパワーオンリセット、もしくはPLS_MIF -1で解除できます。
WPLS,VPLS:
WPLS,VPLSはPWMライクなコマンドです。周波数設定方法のほかは、YPLSと同様の使用方法になります。
注意としてYPLS,WPLSはタイマー3,ZPLS、VPLSはタイマー2を共有しているため、それぞれ排他的にしか使用できません。
WPLS A,B0,C0
Aはポート指定です。Yplsと同様です。
B0はオフ時間を規定します。時間の単位は2.17μ秒です。50-65535(0.1m秒-0.14秒)まで指定できます。オン時間を規定するのは次のアドレスの変数です。
50以下を指定するとパルスが正常でなくなったり、他のコマンドを受け付けなくなります。
C0はカウンタの指定です。
停止方法はYPLSと同様です。

REV-3.50i (K8b4)
ZPLS追加。ZPLSはYPLSと同仕様のコマンド。これにより同時二軸非同期制御も可

(K8b3) 旧240で稀に不具合があるのを修復。
REV-3.50h  YPLSの終了を確認する機能追加
YPLS A,B,C
A=0 ...............として停止指定後
WAIT A=256 ..を待てば本当の停止

REV-3.50g (K8b1)
YPLSのバグフィクス。マルチタスク下でIOの矛盾が出るのをバグフィクス
K8B1 マルチタスクのスイッチのバグフィクス
期待通りの応答が出なかったものを、修復
YPLS,ZPLS
>LIST
10 A=1
20 B=100
25 C0=0
30 YPLS A,B,C0
40 FOR I=1 TO 10
42 I0=100*I
45 PRINT I0   
50 WAIT C0=I0
55 A=0
60 WAIT A=256
65 A=1
70 YPLS A,B,C0
80 NEXT I
90 A=0
>RUN
100
200
300
400
500
600
700
800
900
1000
>


REV-3.50f (K8b0)
MPC-816Kの0−7出力でコマンドでパルス出力ができるようになりました。このパルス発生は内部タイマーで自動的に出力されるためコマンド実行後、ただちに次の処理に移ることができます。
YPLS P,R,C
P:第一引数がポート指定1,2,4,8,16,32,64,128
R:第二引数はパルスレート10pps-1500pps程度
C:省略可。いくつパルスを出したかを記録する変数。
Pが1,4,16,64の場合インクリメント、2,8,32,128の場合デクリメント

引数はかならず、変数で指定します。コマンド実行前に第一、第二引数の値を決めておかないと正しく動作しません。
第一引数、第二引数を動作中に変更するとパルス出力を停止、あるいはポート変更できます。また、第二引数に指定した変数を変更することによって、パルスレートも動的に変更できます。

REV-3.50d Keyコマンド付
キィーコマンドは、フラッシュROMにロックをかけて変更を阻止するコマンドです。
KEY 9812
とコマンドを実行すると9812をパスワードとしてロックがかかり、フラッシュROM上のデータは変更することができなくなります。パスワートは2byteの整数の範囲で設定してください。解除は同様に
KEY 9812
とします。番号を忘れてしまった場合は解除できなくなります。この方法については各ユーザで一定の取り決めをしていただきシステム管理者として登録された方以外には公開できませんのでご了承ください。
なお、キィーコードに負の数を設定するとLIST表示もしなくなります。

モニタ K8a9 SW(12-15)をバグフィクス,
モニタ K8a8 CTRL-AでIOリセットをバグフィクス,
REV-3.50c Z版 REV-2.50b P: Z_SWAP,Z: P_SWAP

モニタ K8a7 P版 REV-3.50b Z版 REV-2.50a MODE3,4の修復
k97a 瞬間停電の検出
TST#(0)のバグフィクス
CNFG#のバグフィクス(XON,XOFF,7ビットキャラの7Fマスク)

機能追加、Z版P版の切り替え
V_SWAP Z,P版の切り替えをサポート。
フラッシュROM上でのデータ変更 のためCHGREVのようにRAM化け障害はありません。
切替え回数は128回以内。K版は出荷時にZ,P両データ搭載。 V_SWAP実行後、パワーオンリセットして、MPCINIT,ERASEを実行して初期化してください。

Pバグフィクス・機能追加
M()バグ M(0)−M(1199)がプログラムエリアと重複していた。
AR<ret> 配列ARの表示
M<ret> 配列Mの表示
VLIST<ret> これは以前からありますが、変数の一括表示
RUN nn フラッシュROM固定を行わなかったのを行うことに変更 P版のみ


MPG-405
(Download)
20331 加速距離2byte制限を撤去
61199 BugFix
10 PG &HE0 : ACCEL 400000
20 SHMZ 2 10 : HOMZ 1 0
30 SHOM 10 1000 : HOME 5 0 0 0
左のように、Z軸の原点復帰速度が著しく遅い場合で、XYの原点復帰を連続させた場合に
30の原点復帰が誤作動をする。
解消方法はhomzのあとに10m秒のタイマーをいれる、あるいはバージョンアップ

21098 SOFT TOUCH 機能修正。よりソフトにしたました。jump,goの下降側のみ有効にしました。
28998 仕様変更 go (評価中につき要注意)
MPG−405のgo命令はこれまで、XYU移動+Z移動で、事実上使われないコマンドでした。ここで以下のパラメータを設定することによってゲートモーションでのZ,XY軸のオーバラップ移動が可能となります。
TR -11,z ・・・・Z軸がZで指定した残り値になるとXY移動を開始する。上昇のオーバラップ
TR -12,xy ・・・XY軸がxyで指定した残り値になるとZ移動を開始する。下降のオーバーラップ。
jump,jmpzではこれまでと同様オーバーラップ移動はありません。オーバラップを解除するにはgoを使わないか、z,xyを1にしてください。
また、パワーオン後はオーバーラップは解除されています。

27998 機能追加 SOFT-TOUCH
TR -5 2・・・・・・Zソフトタッチ有効
TR -6 400 ・・・停止400パルス前から減速
MOVZ 10000・・ソフトタッチ付移動
MOVZ 0・・・・・・ここではソフトタッチは解除されている。
ソフトタッチは減速位置を通常の減速位置より早く開始して、ハンドのワークへのソフトランディングを指定するコマンドです。減速開始点を通常の減速開始より少ない値にすると、無効になります。また、ソフトタッチ指定は一回ごとにクリアされますので必要な個所ごとに指定します。(TR -5 2のみ必要、減速開始位置は保持されていますので変更がなければ指定)

7998 Bug Fix 低速パルス発生モードでのSTOP不具合。
パルス発生中の途中信号出力機能追加
超低速パルス発生機能追加


MPG-303
MOVE,RMOVのY軸を暫定的にU軸に切り替える。98/5/7
(Download)
適用
プログラム例
アップデート方法
MPG-303
(CEP-009E)
MODE 5のみで使用可能
SFDL -1
でY軸出力をUに切り替える
SFDL -2
で通常動作にもどる

MPC-816側の機能ではありませんので303のROM交換により816Xでも使用可能です。
LIST
10 PG 1
20 MODE 5
25 SETPOS 0,0
30 ACCEL 10000
40 FOR I=1 TO 10
50 RMOV 1000,1000
60 TIME 50
70 NEXT I
80 MOVE 0,0
90 SFDL -1
100 FOR I=1 TO 10
110 RMOV 1000,1000
120 TIME 50
130 NEXT I
140 MOVE 0,0
150 SFDL -2
160 GOTO 40
>
  1. ダウンロードから自己解答ファイルMPG303d.EXEを取り出す。
  2. 実行すると8個のhexファイルがあらわれるのですべてをROMライタダウンロードして27C256タイプのROMに書き込む。
PROMライタの扱いに習熟されている場合
  1. MPG-303からROMを取り外し、ライタにデータをコピーする。
  2. ダウンロードから自己解答ファイルMPG303d.EXEを取り出す。
  3. 実行すると8個のhexファイルがあらわれるのでFPG8.HEXのみROMライタに転送して書き込む。(変更はFPG8.HEXのみ)