Dobotstudio2020 のscript(Lua)を用いた操作方法を記載します。
サンプルプログラム1
<内容>
・アームの移動
・IOの操作
<プログラム>
local Option={SpeedL=10, AccL=10, Start=20, ZLimit=140, End=20}
DO(1,ON)
Jump(P1, Option)
DO(1,OFF)
Jump(P2, Option)
DO(1,ON)
Jump(P3,Option)
DO(1,OFF)
<解説>
Local変数として、JUMP関数の引数であるOptionを定義しIOを操作するDO関数には、それぞれのポート番号とONまたはOFFの指示を行います。
サンプルプログラム2
<内容>
・サブルーチンの作成
<プログラム>
local Option={SpeedL=10, AccL=10, Start=20, ZLimit=140, End=20}
function move()
DO(1,ON)
Jump(P1, Option)
DO(1,OFF)
Jump(P2, Option)
DO(1,ON)
Jump(P3,Option)
DO(1,OFF)
end
move()
<解説>
move()functionを登録し、それを呼び出す手順が加えられています。
サンプルプログラム3
<内容>
・マルチスレッド
<プログラム>
・src0.lua
function move()
DO(1,ON)
Jump(P1, Option)
DO(1,OFF)
Jump(P2, Option)
DO(1,ON)
Jump(P3,Option)
DO(1,OFF)
end
move()
・src1.lua
print(“PROGRAM START”)
<解説>
サンプルプログラム3では、これまでscr0のみを使っていたがここに、同時にプログラムがスタートし、並行して実行されるsrc1を追加してみました。こちらはDobot社いわく、scr5まで追加でき、scr0以外をメインスレッドとするマルチスレッドのプログラムを作成できるとのことでした。
このプログラムでは、srcでPROGRAM STARTの出力をしているだけであるが、これがマルチスレッドで行われているということがわかるかと思います。
サンプルプログラム4
<内容>
・global.luaの使い方
<プログラム>
・src0.lua
local Option={SpeedL=10, AccL=10, Start=20, ZLimit=140, End=20}
function move()
DO(1,ON)
Jump(P1, Option)
DO(1,OFF)
Jump(P2, Option)
DO(1,ON)
Jump(P3,Option)
DO(1,OFF)
end
move()
・global.lua
function pri(src)
text=src..”PROGRAM FINISHED”
print(text)
end
・src1.lua
count=0
DO(2,ON)
DO(2,OFF)
pri(“script 1”)
<解説>
上のプログラムはさらにglobal.luaというスレッドを追加したプログラムです。
このglobal.luaとは、スクリプト内にも記述している通り、global変数と関数などを宣言するためだけに存在していると考えてよいです。
global変数、やどのスレッドからも呼び出せる関数はここでしか宣言できず、ほかの場所で宣言してもそちらはそこのスレッド(ローカル)でしか呼び出せないという意味です。
今回は、スクリプトが完走した際の報告を担う関数をglobal.luaに宣言しスクリプトが完走した際にスクリプト名を引数に渡し、それぞれのスレッドから関数を呼び出すというものです。
さいごに
ここまでの手順のどこかで躓いてしまった場合には、下記のメールアドレスまでお問い合わせください。
お問い合わせ : dobot@techshare.co.jp
制作者:岡田