上海天任电子有限公司`D脚本1.D脚本编程语言(D-Script)1.1D脚本的简述使用D脚本编写程序,可以在程序中方便灵活的实现某些特殊的功能,而且脚本也能替代PLC的某些功能,比如逻辑运算,数据运算,如此一来便可减低PLC程序的负载量。z脚本可以分为两种类型:D-Script(局部脚本)和GlobalD-Script(全局脚本)。D-Script(局部脚本):仅仅在当前所在画面执行;GlobalD-Script(全局脚本):无论在哪个画面下都执行,需要注意的是这个功能仅仅支持GP77R/GP377/GP2000/ST系列。z脚本的是否执行是由触发条件来实现的。触发条件有时间,上升沿,下降沿,条件真假几种。1.2脚本的使用z选择脚本类型上海天任电子有限公司`D脚本1.2.1脚本编辑器中的各选项介绍◆菜单介绍:文件:选项:◆ID:D脚本号码每一个D脚本号码是唯一的,范围00000-99999◆描述:昀多20个英文字或者10个中文字来描述程序的标题◆显示工具栏:呼叫D脚本工具栏◆公式:编辑D脚本窗口D脚本命令与命令之间必须以Space(空格键)分开上海天任电子有限公司`D脚本◆数据类型:指定D脚本所使用的数据格式是Bin(二进制)或BCD码◆数据长度:指定D脚本数据的长度16位或32位◆符号+/-:指定D脚本数据的符号(正负号)数据为纯正值或者正负值的数值范围:◆自动检查工具栏:自动检查语法,当有语句格式正确或者错误都会有提示。◆触发:触发栏用于设置启动程序的触发条件,当触发条件成立,便执行公式编辑栏中的程序。触发条件有三种形式:定时周期触发、位边沿从·触发和表达式条件触发●定时周期触发选择定时周期触发时,设置触发时间(秒),时钟持续时间范围1-32767秒当计时到达后,会再重新计时,则每隔这段时间,程序执行一次。●位边沿触发□上升沿触发在设定的边缘位地址由0-1触发□下降沿触发在设定的边缘位地址由1-0触发上海天任电子有限公司`D脚本□上升沿或者下降沿触发在设定的边缘位地址由0-1或者1-0触发●表达式触发□表达式不等于0触发当操作栏中的表达式为由0-1时,程序执行一次□表达式等于0触发当操作栏中的表达式为由1-0时,程序执行一次◆D脚本工具箱当显示工具栏被选中时,弹出D脚本工具箱,在此工具箱中包含了D脚本所用到的所有指令。●功能下拉列表框在功能下拉菜单中有7大部分:数据设置、绘画、内存操作、位操作、SIO端口操作、CF卡文件操作、打印机操作(这里详细介绍前4部分)□数据设置上海天任电子有限公司`D脚本△常量:设置有常量,有十进制、八进制、十六进制三种数据格式上海天任电子有限公司`D脚本△临时地址:设置临时地址,共有90个Word(0000-0089)△位地址:设置位地址△字地址:设置字地址□绘画上海天任电子有限公司`D脚本△点:设置1点的X(横坐标)和Y(纵坐标)及点的颜色,2、3、5点的功能无法使用△调用画面:加载先前所建立的基本画面,设置画面号以及目标画面中心所放置的坐标△矩形:设置矩形的式样,以及左上角(X1,Y1)和右下角(X2,Y2)的坐标△线:设置线的式样,以及起始坐标(X1,Y1)和终点坐标(X2,Y2)上海天任电子有限公司`D脚本△圆:设置圆的式样,以及圆心坐标(X,Y)、圆的半径□内存操作上海天任电子有限公司`D脚本△内存比较:比较几组内存之间的大小参数1:比较数据地址的首地址参数2:相对应的比较数据地址的首地址参数3:比较结果存放的地址(2表示大于,1表示小于,0表示等于)参数4:比较数据组号存放的地址参数5:比较内存地址的数量参数6:内存地址分组的大小△内存复制:字地址区段间的复制DI字地址:内存复制的目标起始字地址拷贝大小:设置区段,范围在1-640之内SI字地址:内存复制的源起始字地址△内存复制(变量):间接带偏移量的内存复制上海天任电子有限公司`D脚本参数1:带偏移量的目标起始字地址,偏移量在临时字地址中设置参数2:带偏移量的源起始字地址,偏移量在临时字地址中设置参数3:设置区段,可以直接用常数给定,也可以用LS字地址或者临时字地址设置,范围在1-640之内△内存设置:将字地址区间赋值设置字地址:设置起始地址设置数据:给字地址赋值设置大小:设置区段,范围在1-640之内△内存设置(变量):间接带偏移量的字地址区间赋值上海天任电子有限公司`D脚本参数1:目标起始字地址,在临时字地址中设定偏移量参数2:赋值。可在LS区或者临时字地址设置,或者直接输入常量设置参数3:设置区段,可在LS区或者临时字地址设置,或者直接输入常量设置,范围在1-640之内△内存搜索:在字地址间搜索与目标字地址相同的数据参数1:要搜索数据地址的首地址参数2:要搜索目标地址的首地址参数3:要搜索目标地址的结束地址参数4:存放搜索结果的地址参数5:指定搜索块的字地址上海天任电子有限公司`D脚本参数6:指定搜索数据连续地址的个数参数7:指定数据块的个数△内存循环移位:连续地址数据的移动,向左移动起始字地址:循环移位中的首地址结束字地址:循环移位中的末地址(但是循环起来不包括这个地址)Ring大小:循环移位的位数的大小△内存移位:把指定地址的值删除并把其后的地址的值向左移位参数1:指定内存的起始地址参数2:指定内存的结束地址(但是循环起来不包括这个地址)参数3:指定要删除其值的内存地址参数4:指定组成数据块地址个数的大小△偏移地址:设置目标地址的偏移地址注意:偏移地址只支持临时地址,就是[t:0000]格式例子:[w:0021]=[w:0020]#[t:0000]假如[t:0000]的值等于10,那么[w:0021]的值就是等于[w:0030]的值□位操作上海天任电子有限公司`D脚本△触发位:将指定的位状态转换,0-1或者1-0△清除位:将指定的位置“0”△设置位:将指定的位置“1”□语句上海天任电子有限公司`D脚本△if()语句当条件为真时,则执行处理程序的命令△if()else语句当条件为真时,则执行处理程序1;当条件为假时,则执行处理程序2△loop()语句上海天任电子有限公司`D脚本在指定的执行次数范围内循环执行动作程序,循环次数设定于临时地址中△break语句在指定的执行次数中执行完动作程序1后,不执行动作程序2,结束循环□运算操作符需要说明的是这里的运算不支持浮点运算,当运算产生小数的时候,小数点右边的将会不显示,以四折五入的方式进位,比如实际运算结果出现123.4,那么在这里的运算会得出123,如果实际运算结果是123.5,那么在这里的运算会得出124△赋值上海天任电子有限公司`D脚本△加法△减法△乘法△除法△求余△左移位将左边的数据向左移位,移的位数由右边的数据决定例如:指定一个位的左移△右移位将左边的数据向右移位,移的位数由右边的数据决定△字的与运算将两个字的对应位进行“与”运算△字的或运算将两个字的对应位进行“或”运算△字的或非运算将两个字的对应位进行“或非”运算△字取非将一个字的所有位进行“非”运算□比较命令上海天任电子有限公司`D脚本△“与”运算:△“或”运算:△“非”运算:△小于:△小于等于:△不等于:△大于:△大于等于:△等于:【说明】:优先级顺序上海天任电子有限公司`D脚本◆功能块(函数)建立好的子程序或者功能块可以在相同或者其他画面所使用,也可以在D脚本或者全局D脚本中调用□:子程序的调用,选中要调用的子程序名,按“调用”,在程序编辑窗口中显示“Call子程序名”□:子程序的新建上海天任电子有限公司`D脚本函数名:(调用时)子程序名称,可以是英文、数字以及“_”,中文不可以【注意】:以下函数名已被系统使用,请勿使用子程序中还可以调用已建好的子程序,可以嵌套,不过嵌套昀多只能9层□:已建子程序的编辑□:删除已建的子程序□:复制已建的子程序□:贴上复制的子程序1.2.2D脚本和全局D脚本的一些限制注意◆一个脚本可使用的昀大地址数为255个,应尽量少用◆程序中调用功能块嵌套昀多9层◆程序中昀多可建立254个功能块◆如果在BCD格式作业期间,所用的值非BCD格式时,程序将停止执行,请勿使用包含上海天任电子有限公司`D脚本了16进制A-F的值◆“=”的使用注意,举例说明:D0100=D0200+1应写LS0100=D0200+1D0100=LS0100这样可以提高执行效率◆当更换PLC类型或者更改PLC地址时,D脚本中的地址不会自动转换,需要打开D脚本编辑器手动修改◆全局D脚本可使用的昀大地址数为255个,应尽量少用◆全局D脚本昀大个数为32个,包括可以调用的功能块程序全局D脚本中调用的一个功能块以一个全局D脚本计算