机器人脚本编写规则
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
脚本编程规范
一、排版
1.程序块要采用严格的Tab键缩进风格编写,结构上分级(根据级别依
次向里缩进),必须保持同等级语句开头对齐的原则。
二、注释
1.文件头注释必须包含以下信息,如下段头注释。
/*************************************************************
****************************
******
P0 原点
P1 取料点
P2 上料点
P3 下料点坐标
Description: 到达P1点
弧线到达P2
Author: 王浩
date: 2014-3-25
Modification:
**************************************************************
****************************
******/
2.源程序有效注释必须在20%以上,特别针对于运动轨迹,坐标上的变
换,判断传感器的Yx位,以及按键注释,变量定义识注释。要保持
同等级语句后面的注释保持对齐,如下段函数:
function OnMain()
{
SetYx(1203,0); //清除报警代码
if(CheckYD())return; //检查是否回原点
Setup("Speed","PV1"); //设置速度
while(1)
{
if(LineMove("AFD","P1"))return;
//抓取点
if(Delay(10)&0x01)return;
//延时
ArcMove("AFD"," Around_Z","P1","(P1+P2)/2+PD1","P2");
//弧线运动
ArcMove("Con","Around_Z","P1","(P1+P2)/2+PD1","P2"script);
//带条件接近的弧线运动
}
}
三、标识符命名
1.标识符的命名要清晰、明了,有明确含义,同时使用完整的单词或大家
基本可以理解的缩写,避免使人产生误解。
2.说明:较短的单词可通过去掉“元音”形成缩写;较长的单词可取单词
的头几个字母形成缩写;一些单词有大家公认的缩写。示例:如下单词
的缩写能够被大家基本认可。
temp 可缩写为 tmp ;
flag 可缩写为 flg ;
statistic 可缩写为 stat ;
increment 可缩写为 inc ;
message 可缩写为 msg ;
3.坐标命名(字母必须大写),坐标属于全局变量(字符变量,所以引用时
采用“”),坐标变量命名同类坐标后面加_#(如:P1_01)进行区分,PD坐
标的命名尽量根据当前需要便宜的坐标上后跟下划线加方向(如:PD1_X、PD1_Y、PD1_Z,PD1_X_Y等)。
4.const(常量),字母必须采用大写,同一个变量单词间采用下划线隔开,
如以下变量:
const BRK_OFF = 18; //抱闸YK
const SRV_ON = 19; //伺服使能
const LED_START = 193; //启动灯
const LED_PAUSE = 194; //暂停灯
const LED_BACK = 195; //回原点灯
不同类别的变量之间需要空一行,如系统的LED与机器人本体的开关量。
目前有机器人本体开关量、虚拟按钮、外设开关量、报警信号名。
5.全局变量,命令采用linux命名风格,单词之间采用下划线分开,字母
小写。特别需要说明的是按键标志位全局变量,以flag_#(#代表按键对
应yx位,如flag_208)。
6.Bool量,字母大写。
7.局部变量,同样采用命令采用linux命名风格,切记不能去全局变量名
相同,,可以是单独字母,但是建议只在for循环或者while循环之内用
(如:for(i = 0;i <= 10;i++)/while(i <= 10)),用在其他地方在代
码篇幅大的时候容易混乱。
四、函数
1.命名,函数命名需要根据其功能命名(如:CheckYD()),其格式采用驼
峰式命名法(即单词首写用大写),常见单词可以缩写。
2.语句,要有严格语法根据,if与else要成对出现;switch语句最后必
须有default部分,case下面要严格考虑break是否需要,不能随便省
略。
3.函数体,上下阔幅需要对齐,函数体内语句开头需要用tab键缩进,调
用的函数一定要在本函数体前文部分。函数根据其功能划分必须在对应的框架之下如:
//坐标变换函数
function GetPn(num)
{
}
//运动函数
function Move()
{
}
五、实时调用
1.OnLoopRun()与OnMain()函数之间通信一律采用Yx量,禁止使用全
局变量。
2.OnLoopRun()函数内尽量不要附加调用延时语句。
3.除OnLoopRun()内延时采用if(Delay(10)&0x02)return外,其他地方
延时语句必须&0x01;
六、调试
1.必须先确定程序上传后无错误(监控调试下),手动运行一遍后才能提速
自动运行。
2.现场动作在没有其他干涉情况下尽量减少运动,以提高运行效率。