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 >
© Copyright 2024 Paperzz