程序测试网速命令

测试网速命令  时间:2021-01-10  阅读:()

BenT-CNC可编程运动控制器BR010系列N0:2BR010详细产品手册指令篇脱机编程的详细介绍第二次修订(适合2017-9月以后版本)浙江俊腾(奔腾)数控自动化设备厂ZheJiangJunTeng(BenT)CNCfactoryautomationequipment前言说明书下载与对应视频讲解:登入官方网址:www.
btcnc.
net至"BR010系列"查看电子手册与视频文件资料说明:本系统配备了2套说明书,第一本为《NO:1BR010快速编程指南与实例》,第二本为《NO:2BR010详细产品手册》(本册).
其中《NO:2BR010详细产品手册》主要讲解了系统每条指令的含义及其应用.
建议先阅读第一本《NO:1BR010快速编程指南与实例》,再阅读相应的《NO:2BR010详细产品手册》.
《NO:2BR010详细产品手册》作为查阅使用,故不印刷发册(官网处下载).
内容说明:1:如果在第一本《NO:1BR010快速编程指南与实例》中已提到的内容,这里不再重复.
2:本册的第二章,有讲到脱机编程的详细方法,可选择性按需学习!
3:因电脑在线编程实在过于简单,这里不再介绍,可登入网页观看视频:软件下载地址:http://btcnc.
net/web/2moto/WEB/4.
htm目录BenT-CNC1第1章系统指令的详解61.
1程序所有指令集一览表61.
2子程序A---1线---F1触发(程序开始语句)61.
2.
1一套完整程序的构成方式61.
2.
2详细解释71.
2.
3应用演示81.
3=======结束或返跳(程序结束或返回语句)91.
3.
1指令作用91.
3.
2功能介绍91.
3.
3应用演示101.
4Y01=1(输出端口语句)101.
4.
1详细解释101.
4.
2应用演示111.
5死等X0=1过00.
0S后开Y10(输入信号语句)121.
5.
1指令应用121.
5.
2详细解释121.
5.
3应用演示141.
601.
00秒(固定延迟)151.
6.
1指令应用151.
6.
2应用演示151.
7等:菜单00xxxxxxxx(可变延迟)161.
7.
1详细介绍161.
7.
2程序举例161.
8循环指令使用(循环开始xxx次与循环结束)171.
8.
1指令应用171.
8.
2详细介绍171.
8.
3程序举例171.
9计数加一(计数器专用语句)191.
9.
1详细介绍191.
10X机正转01000速01000等停(唯一的电机语句)201.
10.
1电机的编程步骤201.
10.
2关于菜单内电机固定参数的介绍201.
10.
3【步进/伺服电机】控制语句的解释221.
10.
4【*回零语句的解释:X机回零003.
00速110.
00等停】221.
10.
5【回零语句】与【反转语句】区别:231.
10.
6关于最高输出速度介绍231.
10.
7程序举例241.
11如1那跳00否则跳00不返(判断语句、循环语句)261.
11.
1指令应用(控制器非常重要的语句)261.
11.
2详细解释271.
11.
3跳转的示意图281.
11.
4应用演示281.
12跳(0=0)A:+23不返(高级判断语句)321.
12.
1指令作用321.
12.
2详细介绍331.
12.
3程序举例341.
13a=00010(直接数值赋值)351.
13.
1基本介绍351.
13.
2应用演示361.
14b变量:b(相互赋值函数)361.
14.
1指令作用361.
14.
2详细介绍361.
14.
3程序举例371.
15a=a+00001(十则运算语句)391.
15.
1指令作用391.
15.
2详细介绍391.
15.
3程序举例411.
16急停:线程5(可编程的急停)431.
16.
1系统支持方式431.
16.
2详细介绍431.
16.
3应用演示441.
17显示:菜单00在0行00列正显(显示文字语句)451.
17.
1指令作用451.
17.
2指令介绍451.
17.
3应用演示45第2章系统界面介绍与操作方法462.
1控制器【界面介绍】与【权限分配】462.
2用户模式的操作方法(开机默认为用户模式)462.
2.
1设备运行-用户模式462.
2.
2手动测试-用户模式462.
2.
3菜单参数修改-用户模式472.
3管理员模式的进入方法472.
4程序员模式的操作方法47第3章脱机编程方法483.
1前言483.
2程序编程进入方法483.
3编程步骤与操作483.
4*文字输入方法介绍(附录)49第4章附*菜单创建与界面的命名504.
1菜单的创建步骤504.
1.
1自定义菜单的名称504.
1.
2选择菜单的数据格式504.
1.
3修改菜单的属性514.
1.
4菜单数据的调用514.
2如何关闭和修改默认的开机界面514.
3自定义主界面的文字和布局53系统指令的详解程序所有指令集一览表19种程序的名称程序名称用途子程序A---1线---F1触发程序开始语句.
可设置程序启动方式和启动接口可分配程序在哪个CPU上运行(共5个CPU)=======结束或返跳程序一旦碰到此语句,程序就会结束(如有跳转情况就会返跳)Y01=1输出端口语句.
可设置Y端口输出或关闭等待X0=1过00.
0后->b输入信号检测语句.
可检测信号状态或死等信号状态如1那跳00否则跳00不返1:判断语句2:输入信号检测语句3:跳转语句4:循环语句01.
00秒固定延迟.
常用于程序的固定延迟.
不可在菜单内修改延迟等:菜单00xxxxxxxx可变延迟.
常用于程序的可变延迟.
可在菜单内修改延迟循环开始次00000循环开始语句.
可设置固定循环次数和菜单内设置的次数循环结束循环结束语句.
循环内容选定:循环开始(头)和循环结束(尾)计数加一计数器加1专用语句.
可设置计数器永久累加或临时累加.
X机正转01000速01000等停唯一的步进/伺服电机(脉冲)语句.
正转、反转、速度设置等a=00010直接数值赋值.
常用于变量的初始值b变量:b相互赋值语句.
常用于读取菜单的数据a=a+00001十则运算语句.
加减乘除等急停:线程5线程控制语句.
用于可编程的急停,暂停等功能.
不推荐使用显示:菜单00在0行00列正显显示文字语句.
用于显示程序的工作状态跳(0=0)A:+23不返高级判断语句.
条件判断、数据赋值、信号检测等01行空白空白语句.
无任何意义的合法语句单步单步语句.
功能暂不齐全如要详细了解每条指令的含义和使用方法:查看下文子程序A---1线---F1触发(程序开始语句)一套完整程序的构成方式【子程序A---1线---F1触发】为程序开头,结束或返跳】为程序结尾.
如下一套完整的程序如下子程序A---1线---F1触发-----程序内容-----=======结束或返跳程序开头程序内容程序结尾解释:1:一套完整的程序必须有程序头和程序尾.
如果在【=======结束或返跳】不写的情况下,那系统会一直往下运行,直到100行程序运行完为止,运行的内容是空白指令,没有任何意义,但它占用了系统的运行速度.
因此不要忘记添加程序结尾语句!
(下文有讲)2:如果系统存有多个程序,在【=======结束或返跳】不写的情况下,子程序语句(开始语句)还是有用的,可正常启动下面的程序!
但在启动之后,系统会自动运行下面另外1个子程序的内容.
且有时会出现不可预测的情况,故【=======结束或返跳】一定要切记不要遗漏!

3:如系统只存有1套程序,则子程序语句可省略,系统会默认分配一个子程序语句(即F0触发).
如果系统内要有多套程序,则子程序语句不能省略,因为系统是靠子程序语句进行分辨并分割的!

详细解释子程序名称该子程序运行的CPU该子程序的启动方式子程序A-------0线-F1触发可设置【A-Z】共26个可设置【0-4】共5个CPUX0-X7:输入接口启动1:当写完1个子程序之后,就可以在【=======结束或返跳】后面紧接着写下面1个子程序2:子程序名称不得重复命名.
注意:1:因为CPU都是独立的.
所以系统可进行5个不同程序同时运行.
但我们不支持这样做,因为CPU是模拟出来的,就如电脑一样,多开程序容易造成系统反应慢或出错.
我们一般建议多开的CPU,是用来服务主程序的,且要求该程序量短,运行事情简单.

2:一个CPU只能在线执行一个任务,要想在一个CPU上执行多个程序,必须要排队顺序进行.
如果是同时在一个CPU上执行,那控制器就选择先触发的那个程序,后面的自动舍弃!

3:当设置为0号CPU时,运行主界面上会显示进度条及其他信息.
当然也可以更改指定的CPU号.

方法:程序员模式-设置-进入菜单-菜单38行【显示几号线程进度】可进行更改.
默认是:0下面例程都有相关讲解!
F1-F9:控制器上的F键启动其中:F0就是系统背面的启动接口F9就是系统背面的暂停接口ESC就是系统背面的急停接口校触发:按校准键启动无触发:程序触发启动启触发:开机就启动(为安全考虑,建议不用!
)注意:1:多个程序存在下,不得用相同的启动(触发)方式.
【无触发】方式允许重复2:上文讲过,当只存有1套程序时,则子程序语句可省略,系统会默认分配一个子程序语句,触发方式:F0触发或系统背面的启动接口【子程序语句】与【死等语句】的区别:子程序仅用于程序的启动,在程序内当信号检测是没有用的.

【死等语句】在程序内仅用于信号检测,不能用于程序的启动.
故2者不要混淆!
死等语句下文有介绍应用演示①:按【X0输入】启动一个简单程序子程序A---0线---F1触发-----程序内容-----=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:F1输入程序内容程序结尾效果:按【F1输入】启动了程序A,程序A在0号CPU上运行.
②:几个程序同时运行子程序A---0线---X1触发-----程序内容-----=======结束或返跳子程序B---1线---X2触发-----程序内容-----=======结束或返跳子程序C---2线---X3触发-----程序内容-----=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入程序内容程序结尾程序开头.
名称为B,CPU为1号,启动方式:X2输入程序内容程序结尾程序开头.
名称为C,CPU为2号,启动方式:X3输入程序内容程序结尾先检测一下规则:1:这3个程序名有没有重名(没有)2:是不是在不同的CPU(不同)3:触发方式是不是不同(不同)效果:开机上电,这3个程序其实已经同时运行了,只是在等待各自的触发条件!
按X1启动A,依次列推③:几个程序有先后顺序的同时运行(无触发(程序触发)的使用)子程序A---0线---X1触发-----程序内容-----如1那跳B00否则跳+00后台如1那跳C00否则跳+00后台=======结束或返跳子程序B---1线---无触发-----程序内容-----=======结束或返跳子程序C---2线---无触发-----程序内容-----=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入程序内容判断跳转语句.
可查看此语句的详细介绍,这里不解释判断跳转语句.
可查看此语句的详细介绍,这里不解释程序结尾程序开头.
名称为B,CPU为1号,启动方式:其他方式程序内容程序结尾程序开头.
名称为C,CPU为2号,启动方式:其他方式程序内容程序结尾效果:按X1启动运行A程序,运行到第3行,碰到判断跳转语句【如1那跳B00否则跳+00后台】,程序就跳到B程序里,因为是后台运行,所以此时A和B程序同时运行.
当A运行到第4行,碰到另外一个判断跳转语句【如1那跳C00否则跳+00后台】,程序就跳到C程序里,因为是后台运行,所以此时ABC这3个程序同时运行.
总结顺序:先A程序,再B程序,然后C程序,这3个程序是同时运行的!

④:在一个CPU上顺序运行多个程序上文中解释过:一个CPU只能在线执行一个程序任务,要想在一个CPU上执行多个程序,必须要排队顺序进行.
如果是同时在一个CPU上执行,那控制器就选择先触发的那个程序,后面的自动舍弃!

子程序A---0线---X1触发-----程序内容-----如1那跳B00否则跳+00返回=======结束或返跳子程序B---0线---无触发-----程序内容-----=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入程序内容判断跳转语句.
可查看此语句的详细介绍,这里不解释程序结尾程序开头.
名称为B,CPU为1号,启动方式:其他方式程序内容程序结尾效果:按X1启动运行A程序,运行到第3行,碰到判断跳转语句【如1那跳B00否则跳+00返回】,程序就跳到B程序里,因为是返回运行,所以此时A程序暂停,开始B程序运行.
当B程序运行完后,再回到A程序里继续运行下面未完成的事情.

总结:因为1个CPU上只能执行一个任务,虽然这2个程序都是定义在CPU-0号上,但执行是有先后顺序的,所以不违背控制器的法则.

=======结束或返跳(程序结束或返回语句)指令作用用于子程序的【结束】和【跳转返回】功能介绍程序是自然运行(没有跳转返回属性):子程序内一碰到此语句就结束运行.

1:一套完整的程序必须有程序头和程序尾(上文有讲).
如果在【=======结束或返跳】不写的情况下,那系统会一直往下运行,直到100行程序运行完为止,运行的内容是空白指令,没有任何意义,但它占用了系统的运行速度.
因此不要忘记添加程序结尾语句!

2:如果系统存有多个程序,在【=======结束或返跳】不写的情况下,子程序语句(开始语句)还是有用的,可正常启动下面的程序!
但在启动之后,系统会自动运行下面另外1个子程序的内容.
且有时会出现不可预测的情况,故【=======结束或返跳】一定要切记不要遗漏!

3:允许1个子程序内有多个【=======结束或返跳】语句,系统结束子程序是以最先碰到结束语句为准.

这功能很有用:如判断1个条件,满足继续运行,不满足结束程序.
就有可能用该功能!
(下文就有演示)程序是带跳转返回属性运行:程序一碰到【=======结束或返跳】就进行跳转返回,跳转返回到原来之前跳出标记点的下行位置继续工作!
(此功能要配合:【如1那跳00否则跳00返回】使用,下文有讲)应用演示1个子程序内,存有多个结束语句的使用子程序A---0线---X1触发-----程序内容----------程序内容-----如X0那跳+01否则跳+02不反=======结束或返跳-----程序内容-----=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入程序内容程序内容判断跳转语句.
可查看此语句的详细介绍,这里不解释程序结尾程序内容程序结尾解释:这里可以看到,程序A含有2个【=======结束或返跳】,系统只要任意碰到其中一个,就可以让程序结束掉.

效果:当程序运行到【如X0那跳+01否则跳+02不反】时,判断X0是否有感应,如有感应则运行+01,即该判断语句的下面一行,而这行语句是【=======结束或返跳】,所以系统结束该程序,不再运行下面的语句.
如果X0是没有感应的,则运行+02,即跳过了第1次的【=======结束或返跳】,而继续正常运行下面的语句,一直碰到第2次的【=======结束或返跳】才结束程序.

Y01=1(输出端口语句)详细解释输出端口号Y00-Y17端口打开与关闭的指令Y01=0Y00-Y10:普通端口号输出操作Y16:控制器内部蜂鸣器Y17:输出的寄存器操作(非高手勿用)Y:a:端口号在程序内可更改(非高手勿用)0:关闭,1:打开2:取反(之前为开,则变为关.
之前为关,则变为开)a-z:变量控制【0:关】【1:开】【2:取反】【〉2开】在开启输出时,控制器主界面底部会提示输出状态!
*Y17输出的寄存器操作,可不用阅读.
作用:多端口且无时差的输出控制,并只占用系统1行指令空间.
在有些场合,需要对所有输出端口无时差的同时控制(如点亮数码管需要同时开启很多输出口),这里提供了这种解决方案,当Y控制端口号为17时,为端口寄存器操作:格式如下:Y17=a-z,其中a-z为变量,使用前需要提前赋值给它,如a=15a给它赋值后,系统会自动换算成二进制xxxxxxxxxxxxxxxx共16位,16位对应各个端口最后一位指Y00,倒二位指Y01,以此类推,首位为Y15使用举例如下:先进行赋值,a=00003,再运行Y17=a,赋值完成.
所以此时可看成Y17=00003当Y17=00003,控制器自动换算成二进制为Y17=0000000000000011,这里可以看出只开启了末2位的端口,即Y00和Y01打开.
其余都关闭.
再举例Y17=255换算成二进制为Y17=0000000011111111效果为同时打开01234567口,其余关闭Y:a:端口号在程序内可更改,可不用阅读.
用处:在程序运行当中,修改输出的端口号.
在某些场合,如除尘设备,可使用使用举例如下:先进行赋值,a=00003,再运行Ya=1,赋值完成.
所以此时可看成Y3=1,意思就是Y03端口打开.

再举例:b=00008,再运行Yb=1,此时可看成Y8=1,意思就是Y08端口打开.
深度扩展举例:循环开始00008次Ya=101.
00秒a=a+00001循环结束解释:先设置一个循环,共8次.
循环的内容:Ya=1,此时默认a=0,所以就是Y0=1(Y0端口打开),然后在运行01.
00秒,即延迟1秒.
然后a=a+00001,让a自行加1,得a=1.
然后又重头开始循环,所以a的值从0逐渐加到7.
即Y端口从0逐渐改为7效果:Y0-Y7依次点亮,间隔时间为1秒.
应用演示①:最简单的输出控制子程序A---0线---X1触发Y01=1=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入端口Y01开启.
0:关,1:开,2:取反程序结尾效果:按X1启动运行,端口Y01开启.
因为没有写关闭,即使程序结束Y0也一直开着,除非按急停②:同时输出控制子程序A---0线---X1触发Y00=1Y01=101.
00秒Y00=0Y01=0=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入端口Y00开启.
0:关,1:开,2:取反端口Y01开启.
0:关,1:开,2:取反延迟1秒.
(下文有介绍)端口Y00关闭.
0:关,1:开,2:取反端口Y01关闭.
0:关,1:开,2:取反程序结尾解释:程序是从上往下流水式运行,每行间隔时间00.
01秒,即【Y00=1】到【Y01=1】控制器只花费了00.
01秒,对机械是察觉不出的,所以可看作为同时控制!

效果:按X1启动运行,端口【Y00】【Y01】同时开启.
延迟1秒后,【Y00】【Y01】同时关闭.

③:取反功能的演示子程序A---0线---X1触发Y00=201.
00秒Y00=2=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入因为Y00之前没开过,所以默认是关闭的,则运行Y00=2后,这里是打开延迟1秒.
(下文有介绍)上1步,Y00=2是把端口打开,这里进行取反,即把它关闭程序结尾效果:先Y00端口打开,1秒后,Y00端口关闭.
死等X0=1过00.
0S后开Y10(输入信号语句)指令应用输入信号检测、气缸感应器限位,限位报警、变量检测、条件判断详细解释此语句有2种类型【死等X0=1过01.
0后开Y10】与【等待X0=1过01.
0后->b】区别:【死等X0=1过01.
0后开Y10】:必须要等条件满足(有感应信号),才能往下运行下面的指令.

一般用于气缸限位、信号等待、感应报警等常用的场合.
该指令还集合了报警功能,下文有详细解释.

【等待X0=1过01.
0后->b】:无须等待条件满足(有感应信号),就能运行下面的指令.
一般用于查询输入信号的状态,以备后期使用,但无论有无信号,程序都会往下运行.
下文有典型的举例.

设定的条件设定的检测时间Y端口号死等X0=1过01.
0后开Y10X0-X7输入端口其中:信号有输入为:1信号无输入为:0一般用NPN常开的感应器a-z(变量判定)0-10(常数)设定的判断方式=(等于)〈(小于)≤(小等于)〉(大于)≥(大等于)≠(不等于)或(只要2边有一边大于0,条件就成立)与(必须2边同时大于0,条件才成立)反(必须2边同时为0,条件才成立)X0-X7输入端口其中:信号有输入为:1信号无输入为:0一般用NPN常开的感应器a-z(变量判定)0-10(常数)条件的检测时间,最大24秒如设置为1秒,在1秒内条件满足,程序往下运行.
如1秒内条件不满足,就开启后面的报警端口,并弹出报警页面,供客户选择性进行.
在此时即使条件满足了,程序也不会往下运行!

报警输出口一直检测信号,不要检测时间的方法:设置00.
00秒:因为设置了00.
00秒,所以报警页面会马上弹出,但在处于报警页面时,不会输出Y报警端口.
而且在此报警页面中,如条件满足了,程序也会主动往下运行.

总结:1:此语句是死等检测当前状态是否满足【设定的条件】,只当在满足条件的情况下,才往下运行程序2:如在【设定的检测时间】内条件满足(过01.
0),程序自然往下运行.
3:如在【设定的检测时间】内条件不满足(过01.
0),程序不往下运行.
并弹出报警页面,且开启Y端口(可接报警灯).
(在处于报警页面时,即使条件满足了,也不会往下运行程序.
除非设置的是00.
0秒)4:当设置为00.
0秒时,因报警页面会一直显示而影响系统的美观.
如想不显示报警页面,可用另外1条语句来替代:【如X0那跳+01否则跳+00不返】如不懂这语句的意义,可直接更改X0端口号即可(其他不要设置).
如想详细了解该语句,请查看该语句的介绍设定的条件设定的检测时间被赋值的变量等待X0=1过01.
0->bX0-X7输入端口其中:信号有输入为:1信号无输入为:0一般用NPN常开的感应器a-z(变量判定)0-10(常数)设定的判断方式=(等于)〈(小于)≤(小等于)〉(大于)≥(大等于)≠(不等于)或(只要2边有一边大于0,条件就成立)与(必须2边同时大于0,条件才成立)反(必须2边同时为0,条件才成立)X0-X7输入端口其中:信号有输入为:1信号无输入为:0一般用NPN常开的感应器a-z(变量判定)0-10(常数)条件的检测时间,最大24秒如设置为1秒,在1秒内条件满足,则把剩余的【检测时间】赋值给右侧的变量b,然后程序往下运行.
如1秒内条件不满足,则右侧变量b的值为0,然后程序往下运行被赋值的变量a-z(共26个)这个变量的目的是用来储存当前检测时的状态.
不管检测时间设置的是多少秒,总之:条件满足:>0条件不满足:=0得到该变量状态以后,我们配合【如b那跳+01否则跳+00不返】这语句进行使用00.
0:不需要检测时间.
当条件成立:右侧变量b=1当条件不成立:右侧变量b=0总结:1:此语句只是检测当前状态是否满足【设定的条件】(可理解为查询感应器状态),但不管是否满足条件,程序都会往下运行!
被赋值的变量b,是用来存储状态的!

2:如在设定的检测时间内条件满足(过01.
0),则赋值给变量b=(设定的检测时间)-(实际检测时间).
然后程序往下运行.
当设置为00.
0秒时,b=13:如在设定的检测时间内不满足(过01.
0),则赋值给变量b=0.
程序往下运行!

应用演示①:常用-气缸的限位功能(死等语句的使用)程序内容解释子程序B---2线---X2触发Y00=1(电磁阀)03.
00秒死等X0=1过05.
00S后开Y02Y00=0(电磁阀)04.
00秒死等X1=1过04.
00S后开Y02=======结束或返跳程序开头语句.
程序配定在2号CPU内运行,X2启动该程序.
Y00输出开启.
(1开,0关,2取反)固定延迟3秒死等X0伸限位是否有输入,如5秒内无输入,自动开启Y02(报警)Y00输出关闭.
(1开,0关,2取反)固定延迟4秒死等X1回限位是否有输入,如4秒内无输入,自动开启Y02(报警)程序结束语句.
效果:按启动开关(X2)后,【电磁阀(Y00)】开启,气缸伸出时间3秒,再检测气缸有没有伸到位(X0),检测时间为5秒,如果5秒内没检测到信号,则开启报警页面并输出Y02(报警器).
如果有信号,则运行下面的程序,【电磁阀(Y00)】关闭,气缸收回时间4秒.
再检测气缸有没有回到位(X1),检测时间为4秒,如果4秒内没检测到信号,则开启报警页面并输出Y02(报警器).
如果有信号,则运行下面的程序,程序结束!

②:用死等语句制作上升沿(下降沿)上升沿、下降沿概念的解释:上升沿:从无信号→有信号,这过程为上升沿下降沿:从有信号→无信号,这过程为下降沿有什么用:某些场合在工作当中可能启动开关已经闭合,系统则认为启动开关既然闭合了,又会循环的工作下去.
故此时需采用上升沿或下降沿的方式,必须是符合断开到闭合这一过程,才认为启动是有效的.

死等X0=0过00.
00S后开Y02死等X0=1过00.
00S后开Y02Y01=1=======结束或返跳死等X0是否为无输入,00.
0S:一直检测死等X0是否为有输入,00.
0S:一直检测Y01开启程序结尾解释:先检测X0是否无感应,再检测X0是否有感应,符合这过程了,才开启Y01.
这个是上升沿的做法.

关于下降沿,道理是一样的.
现实当中,用这种方法做上升沿完全能应付了.
缺点:X0从无感应到有感应,这过程必须要求是短暂的.
如果过程是长的,这做法就没有意义了.
正确做法:如果长时间没收到有信号,应该重新从头开始检测.
故使用这方法更加完美:如X0那跳+00否则跳+01不返如X0那跳+01否则跳-01不返Y01=1=======结束或返跳一直查询X0是否无感应.
查询X0是否有感应,有感应往下运行.
如无感应则跳到上1行重新查询是否无感应.
这样可实现轮播查询.

关于这语句的介绍,看下文解释③:用等待语句制作的循环子程序A---0线---X1触发等待X0=1过01.
0后->bY01=1(指示灯)如b那跳+01否则跳-02不返Y01=0(指示灯)=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入检测X0=1条件是否成立(有无感应),有感应b>0,无感应b=0指示灯开启判断跳转语句.
如b>0运行+01(下1行),如b=0运行-02(上2行),指示灯关闭程序结尾解释:【如b那跳+01否则跳-02不返】是判断语句,请查看该语句的介绍,这里不再详解.
效果:按X1启动运行,检测一次输入状态(X0),但无论是否感应,程序都往下运行.
然后Y01指示灯开.
再判断b是什么状态.
当检测到无输入时(b=0)则系统跳到-02,即(等待X0=1过01.
0后->b)再检测一次输入,不断循环检测.
一直到有输入为止(b>0),程序才往下运行.
Y01指示灯关闭,程序结束!

④:同时判断2个信号的方法(与、或、取反的使用)死等X0与X1过00.
00S后开Y10死等X2或X3过00.
00S后开Y10死等X2反X3过00.
00S后开Y10X0和X1两个感应器必须同时有感应信号(都为1),程序才往下运行X2和X3两个感应器只要其中任意有信号,程序就可以往下运行X2和X3两个感应器都必须同时没感应(都为0),程序才往下运行01.
00秒(固定延迟)指令应用固定延迟指令.
此时间只能在程序编程内修改.
其他地方无权修改(时间精度为+00.
02秒)应用演示最简单的延迟子程序A---0线---X1触发08.
00秒=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入固定延迟.
08.
00秒程序结尾效果:按X1启动运行,程序延迟8秒,然后结束等:菜单00xxxxxxxx(可变延迟)详细介绍可变延迟指令.
此时间可在菜单内修改,也可在程序编程内修改.

可变延迟支持2种类型:可变延迟的时间准确精度+00.
02秒1等:菜单00xxxxx时间是读取菜单内的数据(单位为秒,如10.
00指10秒)菜单00xxxxx:指在菜单00行位置的数值2等:(变量:a)/100秒时间是读取变量a-z的值程序举例①:在菜单内设定延迟时间先菜单的设定00行开启时间02.
00(00行:表示菜单位置,数据采用00.
00数据格式)01行关闭时间01.
00程序内容解释子程序A---1线---X2触发Y00=1等:菜单00开启时间Y00=0等:菜单01关闭时间=======结束或返跳程序开头语句.
程序配定在1号CPU内运行,X2启动该程序.
Y00输出开启.
(1开,0关,2取反)可变延迟.
延迟时间读取00行菜单的数据,即02.
00秒Y00输出关闭.
可变延迟.
延迟时间读取01行菜单的数据,即01.
00秒程序结束语句.
效果:按启动开关(X2)后,【Y00】开启,2秒钟后(菜单设定的时间),【Y00】关闭,关闭时间为01.
00秒(菜单设定的时间).
程序结束!

②:在程序内用变量控制时间子程序A---0线---X1触发b=23000等:(变量:b)/100秒=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入b进行赋值,数值为23000(最大为65535)可变延迟,时间读取b的数值并除以100.
即23000÷100=230秒程序结尾效果:按X1启动运行,程序延迟230秒,然后结束循环指令使用(循环开始xxx次与循环结束)指令应用顾名思义,就是用于循环.
控制器支持很方便的循环内容选定:【循环开始xxx次】:为循环内容的头【循环结束】:为循环内容的尾.
之间的内容为循环内容:一套完整的程序如下循环开始次00000-----程序内容-----循环结束选定要循环内容的头循环的内容选定要循环内容的尾控制器支持大循环内的小循环(多层循环)最多可实现10重循环!
超过系统将会溢出报警!

注意:循环开始与循环结束必须成对出现,2者不得缺一.
否则系统将会报警.

消除报警:重启系统,如问题依旧,则还会报警详细介绍循环开始次0000000001-65535:固定的常数设置00000:不工作循环内容无数次:无数次循环菜单0-8:读取菜单位置的数值a-z:变量的控制程序举例①:在菜单内设置循环工作次数先菜单的设定00行气缸开关次数00006(00行:表示菜单位置,数据采用00000格式)程序内容解释子程序A---0线---X2触发循环开始菜00行Y00=1(电磁阀)02.
50秒Y00=0(电磁阀)02.
50秒循环结束=======结束或返跳程序开头语句.
程序配定在0号CPU内运行,X2启动该程序.
循环开始(头),次数读取:菜单00行的数值,即00006次Y00输出开启.
(1开,0关,2取反)固定延迟2.
5秒Y00输出关闭.
固定延迟2.
5秒循环结束(尾)程序结束语句.
效果:按启动开关(X2)后,循环的进行电磁阀(Y00)开启,2.
5秒钟后自动关闭.
循环次数为6次.

②:用变量设置循环工作次数程序内容解释子程序A---0线---X2触发a=00010循环开始a次===循环的内容===循环结束=======结束或返跳程序开头语句.
程序配定在0号CPU内运行,X2启动该程序.
a进行赋值,数值为00010.
循环次数读取a的数值,即00010次===循环的内容===循环结束(尾)程序结束语句.
效果:按启动开关(X2)后,循环工作次数为10次.
③:并列循环程序内容解释子程序A---0线---X2触发循环开始00002次===循环的内容===循环结束===程序的内容======程序的内容===循环开始00005次===循环的内容===循环结束=======结束或返跳程序开头语句.
程序配定在0号CPU内运行,X2启动该程序.
这里设置了第1个循环---等第1个循环结束后,程序继续往下运行---这里设置了第2个循环---等第2个循环结束后,程序继续往下运行---效果:程序先运行第1个循环,等第1个循环结束后,程序往下运行,再开始运行第2个循环.
系统支持无数个并列的循环.

④:多层循环(循环嵌套:大循环内,还有小循环)程序内容解释子程序A---0线---X2触发循环开始00002次===循环的内容===循环开始00003次===循环的内容===循环开始00005次===循环的内容===循环结束===循环的内容===循环结束===循环的内容===循环结束=======结束或返跳程序开头语句.
程序配定在0号CPU内运行,X2启动该程序.
这里设置了第1层,最大的循环这里设置了第2层,中间的循环这里设置了第3层,最小的循环效果:程序先运行第1层循环,在第1层运行当中,碰到第2层循环,则开始在第2层循环内运行,在第2层循环当中,又碰到第3层循环,则开始在第3层循环内运行,等第3层循环运行完后,再逐一的一层一层跳出来.

注意:1:系统支持10层循环嵌套,即大循环内套小循环,最多支持10层.
2:在循环嵌套的时候,也支持【并列循环】写法.
如在第3层中,可以并列N个循环!

计数加一(计数器专用语句)详细介绍1:【计数加一】为系统自带的计数指令,系统运行只要碰到此语句,则计数器就会加1次.

2:【计数加一】与系统的【工作次数限制】有关,在菜单33行可以设置.
为了减少篇幅,请查看《NO:1BR010快速编程指南与实例》—第3章3.
3节有介绍.
3:计数器支持2种类型:永久累加:【计数累加值】断电后计数器不清零,还可继续显示.
清零:开机之前按F9,即可归零计数器.

临时累加:【计数累加值】断电后计数器显示清零(但系统后台还永久累加)4:【永久累加】【临时累加】【计数器显示位置设定】【计数器显示位数与关闭】这里不再介绍:请查看《NO:1BR010快速编程指南与实例》—第3章3.
3节5:默认显示在主界面的位置如下:X机正转01000速01000等停(唯一的电机语句)电机的编程步骤因为步进或伺服电机属于特殊电机,因此在编程之前,需事先设置固定的参数.
设置好之后,再到程序内运用语句,进行编程!

一套完整的电机控制需要2面的设置:第一方面:先在菜单里面设置好固定的参数!
如:螺距,零点,加减速,限位等第二方面:在程序内运用指令语句,进行动作编程!
(系统唯一控制语句X机正转01000速01000等停)关于菜单内电机固定参数的介绍进入方法:在管理员模式或程序员模式下,按设置进入菜单.
软件编程:直接在【参数设置】内进行菜单行数菜单名称默认值备注39X轴零点是几号口00008如零点开关接的是5号输入接口,则设置为00005(1和3号不得用于零点),如设置在7号以上的端口,则说明系统不使用机械零点,而使用软件零点机械零点:回零点时,电机必须碰到零点开关才会停止,然后系统才标记位置为0mm软件零点:开机时,系统马上标记位置为0mm,回零时自动回到开机0mm的位置!

强烈建议用机械零点:能有效消除机械误差!
具体使用方法,看下文介绍40X轴按ESC回零速度04000不建议修改.
如设置为允许按[返回]回零点的,则回零点的速度在这里调.
设置方法在菜单47行41X轴加减速(0-100)00004不建议修改.
电机从启动到正常运转的加速度,与减速度的平缓程度.
建议为4(越大启动越稳定)当电机起步【吃力】或【启动时抖动共振明显】下,可适当增大数值.
42X轴右限位(急刹法)00008系统支持左右限位.
左限位:零点(菜单39行).
当设置为8或9时,表示关闭该功能!

43X轴点动距离毫米000.
00不建议修改.
手动测试点动用的距离.
在手动测试时,短按是点动效果,长按是连续旋转.
长按时,系统先进行点动效果,再执行长按效果(连续旋转).

00000表示关闭该功能44X轴寻零速度00400不建议修改.
电机退到设置好的寻零点的位置后,会以该数值(HZ)设定的速度慢慢寻找零点.
此功能作用于机械零点,软件零点基本没用.
该速度不宜过快,使用方法在讲回零语句的时候有介绍45X轴手动按键反向是否不建议修改.
修改手动测试时,电机运行的方向.
对程序内电机运行方向不会影响.
如要修改程序内电机运行的方向:步进只需对调电机线的顺序(在讲接线时有提到),伺服则在驱动器内设置转向!

46X轴主界面显坐标08062不建议修改.
关于系统主界面右下角坐标显示位置与样式的设置:08为屏幕X位置,06为屏幕Y位置,2反白显示(1不反,0为关闭显示)47X轴按返回回零点是否不建议修改.
按控制器的返回键,电机是否回零点.
48X轴预留功能65535不建议修改.
备用49X轴坐标清0启用点65535不建议修改.
仅对机械零点有效.
意思:65535为脉冲数,当设置为65535时,表示电机在回零的时候,不管任何位置,只要是碰到零点开关,电机停下,并标记为0mm.
设置为其他数值,如10000,表示系统在10000个脉冲之外,即使有碰到感应器也无效.
在10000个脉冲之内任意位置碰到感应器就标记为0mm,电机停下.
有什么用当感应器装在分度盘或圆盘的时候,回零当中可能会碰到N次感应器,而电机停下必须要求是机械0度的位置.
此时就要设置该数值,来过滤掉中间碰到感应器的信号,仅保留最后1次或2次的有效信号.
对于丝杆,就没意义了.

50X轴1毫米=几脉冲00100电子齿轮比的设置.
用处:电子比例一旦设置好,控制器会自动在后台进行脉冲与实际距离的转换.
今后在控制器上显示的距离与程序设置的距离都是实际距离.
使得以后编程和调试变得非常方便和简单因为有些概念对新手比较难理解,这里会详细介绍:设置方法:应填数值=电机一圈的脉冲数÷机械螺距最终数值建议范围100-3000之内关于各部分的解释下文有介绍为了照顾有些客户实在不会换算的情况下,我们就用1种超简单方法:凑量法,优点:方法简单缺点:过程繁琐先把整套设备装到机器上,然后让系统归零(按【返回】或手动按【X-或Y-】),归零之后,此时系统右下角的坐标为000.
00,然后手动按X+或Y+,让电机移动一定距离,如1mm或1cm,此时电机就会旋转并带动机械运动,但实际距离肯定不是与系统对应的.
用尺测量机械运动的距离,对比系统显示的距离.
如少走,则增加移1mm需要多少脉冲的数值.
多走,则减少.
反复修改之后,就可以基本对准电子齿轮比.

系统不支持小数点输入,实际也是不允许小数点存在(电机不存在旋转半下的概念),因此当出现小数点的时候,采用四舍五入的方式,经过四舍五入之后,系统的坐标与实际会有一点点的偏差(四舍的话是少走,五入的话是多走),此时系统的坐标只能作为参考价值.

程序内电机最大填写数值为655.
35,即默认电机最大单次行走的距离是655.
35mm.
如果单次行走距离超过655.
35mm,采用2种方法:1:分2次走,比如第一次先走500mm,第二次走500mm(建议此方法,缺点:换段时有小的停顿)2:修改电子比例值:在原先设置好的基础上,x10.
如本来是100的,现在设置为1000.
这样本来是655.
35的距离单位为mm,现在是655.
35cm.
缺点:距离分辨率降低,系统可控制的速度范围减小.
因此建议最终的数值不要超过3000.
可以减小驱动器细分脉冲数来使得数值减小【电机一圈的脉冲数】解释:在驱动器上(不是本系统),可以设置脉冲数,一般驱动器上有1个表格,按照对应的拨码开关,进行拨码.
伺服驱动器的话,直接在驱动器上,设置分子、分母比例即可.
怎么验证是否对如设置为1000,意思就是1000个脉冲电机为1圈,此时只要让系统发1000个脉冲,看看是不是1圈即可.
让系统发1000个脉冲方法:先在这里填写1000,然后在程序内或手动测试,让它走1mm.
此时系统就会发出1000个脉冲.
然后看看电机是不是刚好1圈.
如少走,表示1圈不止1000个脉冲.
多走,表示1圈不需要1000个脉冲,此时需重新验证驱动器是否设置对!

我们建议设置驱动器的细分范围400-1600.
驱动器细分设置越大,则电机行走的分辨率越高(不是精度),旋转越平稳、抖动越低,但速度也越慢.
故在懂得道理之后,按照实际情况来设置!

【机械螺距】解释:电机装在机器上,让电机转1圈,带动物体是多少毫米.
在有些场合不知道机械螺距的情况下,我们就用上文讲的方法,使系统让电机旋转1圈,然后用尺测量具体走了多少mm即可.
这个值就是机械螺距值.

一般情况下,都是用丝杆结构,这里罗列了丝杆的挑选方法:1:丝杆直径(关乎到寿命)越粗越好,当然价格也越贵2:丝杆螺距(丝杆转一圈实际带动物体是多少mm)如1605,它的螺距为5mm,意思就是说丝杆转动一圈,物体走5mm.
当然有些厂家型号写法不一.

强烈建议:一定要购买【1000÷丝杆螺距=整数】的丝杆.
这样控制器可以比较精准的距离控制.
如果不是整数的,出现小数点,不利于距离的控制.
上文有讲到原因.

3:丝杆螺距越大,则带动物体速度越快,但距离分辨率降低,寿命降低.
不然则反电机圈数的控制:因系统只支持mm为单位(没有角度单位,市场上大多控制器也是不支持的).
因步进电机步距角1.
8度或1.
2度,指的是电机走1步是1.
8度或1.
2度.
如要走30度,则电机应该动30÷1.
8=16.
7次,但实际上电机只能走17次或16次,而0.
7次是走不起来的.
如换成1.
2度的电机就可以:30÷1.
2=25次.
所以在控制角度的时候,要事先算下能不能走的到!
如有驱动器细分的情况下:如设置为1200细分,电机转30度.
则可以算出360÷30=12等分,故1200÷12=100,即100个脉冲为30度.
知道该参数之后,在(1mm移动需多少脉冲)设置为100,在程序内只要运行1mm,就是电机走30度了.

建议:在(1mm移动需多少脉冲)最好设置为10,在程序内运行10mm,效果一致,但交给用户可调的范围就会变得广了51菜单51行至62行是关于Y轴的设置,因设置原理和方法与X轴的一样,这里不再介绍.
63手动移动速度mm/s050.
00X或Y手动测试时移动的速度,这速度也可在电机手动测试界面内,按键修改64最高限制速度mm/s200.
00电机运行的最高速度.
如超过该速度值,则以该数值为准!
目的是防止工人乱调.

【步进/伺服电机】控制语句的解释控制器唯一的电机控制语句:X机正转010.
00速010.
00等停X机正转010.
00速010.
00等停XX电机正转电机正转(相对位置,以上次电机停下为参考点)000.
00(运行距离)程序固定的数值000.
00(运行速度)程序固定的数值等停等电机停下才运行下面的程序.
(就是说当运行下面的程序时,电机肯定停下了)不等无需等待电机停下,就运行下面的程序(就是说当运行下面的程序时,电机还在运行)YY电机反转电机反转(相对位置,以上次电机停下为参考点)菜单0-8数值从菜单内读出菜单0-8数值从菜单内读出转到电机正转到位置(绝对位置,以系统0MM位置为参考点)变量a-z数值从变量内读出变量a-z数值从变量内读出回零电机反转并寻找零点.
(如设置为机械零点,则寻找感应器.
如设置为软件零点,则回到0mm的位置)见下文到点(此功能已关闭)改速修改电机运行中的速度.
不允许电机运行后,马上进行改速,一般是延迟后,再进行缓停电机有加减速曲线的停下急停电机立即停下,可能会失步等停等电机停下,才运行下面程序【*回零语句的解释:X机回零003.
00速110.
00等停】回零采用机械零点下:003.
00为寻零点的距离.
即电机要在感应器前3mm的位置,减速下来找感应器,3mm之外的速度为程序语句内设置的任意速度.
如采用软件零点(不使用感应器):系统则一步到位以程序内设置的速度回0mm.
如下图:注意:寻零速度不宜过快,因为它要校准零点感应器.
一般在200-600之间!
要想快速回零请在程序内设置回零速度!
感应器的寻零距离,是在程序语句内给定,寻零距离不建议直接设置为0mm.
这样回零就没有了校准距离,导致校准不准确.

【回零语句】与【反转语句】区别:1:【回零语句】:电机反转,并寻找0mm.
【反转语句】:电机反转.
因此2者都是反转的效果.
但反转语句可以是反转任意距离.
而回零语句是不管在什么地方,执行时,都将回到0MM位置.

2:回零语句如使用机械零点,回零当中会寻找感应器,如软件零点,则一步到位至0mm.
因此在使用机械零点时,有校准并消除机械误差的作用(软件零点就无法消除).
而反转语句没有此功能3:在使用机械零点时,如反转语句执行的距离超过0MM位置,则系统会强制在感应器位置停下并标记为0MM.
但标记0MM的精准度与回零校准的差很多.
如使用软件零点,则会允许超过0MM位置.
如多走-10mm.
因系统不支持负坐标.
因此系统就认为-10mm的位置为0MM.
以后都是以该位置为0MM电机在运行前都要进行一次校准:这是工业习惯,为了安全与精度考虑!
建议采用机械零点(感应器,行程开关等),尽量不要用软件零点.
关于最高输出速度介绍系统支持最大脉冲输出能力为23KHZ,如2轴同时运行,则是X+Y最大为23KHZ.
超过该能力系统会报警(报警了不代表不能使用,而会出现意外转速现象,但距离还是准的)常见的原因:【电机设置的速度】x【1mm需要多少脉冲(螺距)】>23000,出现该问题系统会立马报警.
消除报警方法:重新启动系统.
如问题依旧存在,则还会报警.

解决方法:1:手动测速的速度是否太高(一般手动测试时会提示)2:程序内电机设置的速度是否太高(一般是启动运行时会提示)3:菜单40行,按ESC返回速度是否太高Y轴的设置方法一样.
(一般是按【返回】键的时候会提示)以上设置的方法都是降低电机设置的速度,其实最有效的方法是降低电子齿轮比(上文有讲解).
我们知道电子齿轮比是由【机械螺距】和【驱动器细分】组成.
因机械螺距改变不容易.
所以我们从驱动器细分(电机1圈需多少脉冲数)设置下手是最简单的方法,建议驱动器细分设置为400-1600程序举例①电机正反转的(距离与速度)控制程序内容解释子程序A---0线---X1触发X机正转040.
00速010.
00等停03.
00秒X机反转030.
00速031.
00等停=======结束或返跳程序开头语句.
程序配定在0号CPU内运行,X1启动该程序.
X电机正转40mm,速度为10mm/s,等停:等电机运行完才运行下面语句固定延迟3秒X电机反转30mm,速度为31mm/s,等停:等电机运行完才运行下面语句程序结束语句效果:按X1启动按钮后,X电机正转(距离:40mm,速度10mm/s),40mm走完后停留3秒.
然后电机反转(距离:30mm,速度31mm/s)②【菜单内可调】的电机距离与速度控制先菜单的设定00行X轴行走距离010.
00(00行:表示菜单位置,数据采用000.
00,唯一的电机数据格式)01行X轴行走速度020.
0002行Y轴行走距离030.
0003行Y轴行走速度040.
00程序内容解释子程序A---0线---X1触发a0,即条件成立.
则运行"+03",跳到该判断语句的下面第3行绕过了该判断语句下面的第1-2行的语句.
程序继续往下运行应用演示①:死循环(最简单的跳转)子程序A---0线---X1触发Y01=2(指示灯)01.
00如1那跳-02否则跳+02不返=======结束或返跳程序开头.
名称为A,在0号CPU上运行,启动方式:X1输入指示灯Y01取反工作.
固定延迟时间1秒因为是1,则条件永远成立.
则一定跳到"-02"(上2行,Y01=2这句)程序结束语句效果:按X1启动运行,Y01指示灯先打开(因为初始是关闭的,那取反之后就是打开),然后延迟1秒,1秒之后,运行判断语句(如1那跳-02否则跳+02不返).
因为条件永远成立,则一定运行"-02"(上2行,就是Y01=2),Y01指示灯关闭(因为后来打开了,所以这次关闭).
最终效果:指示灯闪烁,间隙为1秒!

②:有次数的循环(循环语句就是按照这原理)子程序A---0线---X1触发a=00010Y01=2(指示灯)01.
00a=a-00001如a那跳-03否则跳+01不返=======结束或返跳程序开头.
名称为A,在0号CPU上运行,启动方式:X1输入先给变量初始值.
a=00010(即设定循环工作10次)指示灯Y01取反工作.
固定延迟时间1秒变量a自减一次.
当a>0时,则运行"-03"(上3行).
当a=0时,则运行"+01"(下1行)程序结束语句效果:按X1启动运行,a赋值为00010,Y01指示灯打开(因为初始是关闭的,那取反之后就是打开),然后延迟1秒.
1秒之后,a自减一次,再运行判断语句.
因为a初始为10,减了1次之后,a=9,故a>0,判断条件成立,运行"-03"(跳到上面第3行,即Y01=2).
一直循环a自减到0时,判断条件不成立,就运行"+01"(跳到该判断语句下面第1行,即=======结束或返跳),程序结束!

③:当气缸卡住,自动尝试推拉的实例.
常用于上料机(等待语句的使用)子程序A---0线---X1触发b=00010Y02=2等待X0=1过01.
0后->ab=b-00001如b那跳+01否则跳+02不返如a那跳+02否则跳-04不返=======结束或返跳===下面修复好后正常的语句======下面修复好后正常的语句======下面修复好后正常的语句===程序开头.
名称为A,CPU为0号,启动方式:X1输入B赋值数值10.
这里目的是尝试推拉10次气缸气缸取反工作,即把之前的状态取相反的动作.
检测X0=1条件是否成立(有无感应),有感应a>0,无感应a=0B自减1次.
判断b是否到0了.
如到0,则跳到程序结束.
没到0,继续往下运行判断a是否有感应,有感应说明正确,跳到下面的程序程序结束下面的程序内容下面的程序内容下面的程序内容思路:这里用b来存放尝试推拉的次数,用Y02代表气缸输出口,用X0来作为检测气缸是否推出到位的感应器接口,用a来存放X0信号的感应状态(有感应a>0,无感应a=0).
所以只要检测a是否>0,如>0表明气缸推到位,则程序往下运行.
如a=0表明气缸没推到位,则尝试推拉,推拉的次数由b来设定.
如b=0了,表示设定的次数已经用完了,即放弃推拉尝试,使程序结束!

解释:先b赋值为10.
然后运行Y02=2,因为默认Y02是关闭的,运行取反之后,就打开了.
打开之后,运行等待X0=1语句,即检测气缸有没有到位,如到位则X0条件满足,即a>0.
如没有到位,则a=0.
然后b自己减1次.
故以后只要在程序下面查询a和b是什么数值状态即可.
先运行【如b那跳+01否则跳+02不返】,判断b是否为0,即尝试推拉次数是否到了.
如不是0(尝试次数没到),则运行+01(该判断语句的下1行).
如为0(尝试次数到了),则运行+02(该判断语句的下2行),即=====结束或反跳,使程序结束.
假设不是0(尝试次数没到),则程序继续往下运行,运行【如a那跳+02否则跳-04不返】,此语句的目的是检测a是什么状态,如a>0(表明气缸到位),则运行+02(该判断语句的下2行),即跳过【=====结束或反跳】语句,程序继续运行其他下面的语句.
如a=0(表明气缸没到位),则运行-04(该判断语句的上4行),即Y02=2这行,就是从头尝试推拉1次.

效果:按X1启动运行,气缸Y02开启,然后检测X0是否有感应(是否到位).
如有感应,程序往下正常运行.
如没有感应,即表示气缸没到位,此时就尝试推拉10次,如10次内有感应程序正常往下运行.
没感应,就结束程序运行.

④:检测输入信号,如有输入信号再继续工作(可替代死等语句)子程序A---0线---X1触发如X1那跳+01否则跳+00不返Y01=2(指示灯)=======结束或返跳程序开头.
名称为A,在0号CPU上运行,启动方式:X1输入当X1有输入时(即为1),则运行+01,无输入时(即为0),则运行+00指示灯取反打开程序结束语句效果:按X1启动运行,运行判断语句.
当X1有输入时(即为1),则跳到+01这里(+01即本判断语句的下1行).
当X1无输入时(即为0),则运行+00(+00即本条判断语句的第00行,就是本身自己).
所以此判断语句的作用就是:有输入就往下运行,没有输入就一直不断检测输入.
直到有输入信号为止,才往下运行!

⑤:(不返)控制1个程序运行当中,跳到另外1个程序运行子程序A---0线---X1触发-----程序内容-----如1那跳B00否则跳+00不返-----程序内容-----=======结束或返跳子程序B---0线---无触发-----程序内容-----=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入-----程序内容-----1:条件成立,那绝对是运行"B00"(B程序第00行)不返:做完后不需要返回-----程序内容-----程序结尾程序开头.
名称为B,CPU为0号,无触发:程序启动程序内容程序结尾效果:按X1启动运行A程序,运行到第3行,碰到判断跳转语句【如1那跳B00否则跳+00不返】,程序就跳到B程序里,因为是不返运行,所以此时A程序暂停,开始B程序运行.
当B程序运行完后,不返回继续运行A程序下面未完成的工作.
总结:因为1个CPU上只能执行一个任务,虽然这2个程序都是定义在CPU-0号上,但执行是有先后顺序的,所以不违背控制器的法则.

⑥:(带返回)控制不同程序顺序运行(只写一遍重复程序的例子)子程序A---0线---X1触发-----程序内容-----如1那跳B00否则跳+00返回-----程序内容-----如1那跳B00否则跳+00返回=======结束或返跳子程序B---0线---无触发-----程序内容-----=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入程序内容1:条件成立,那绝对的是运行"B00"(B程序的第00行)返回:做完后要返回程序内容1:条件成立,那绝对的是运行"B00"(B程序的第00行)返回:做完后要返回程序结尾程序开头.
名称为B,CPU为0号,无触发:程序启动程序内容程序结尾效果:按X1启动运行A程序,运行到第3行,碰到判断跳转语句【如1那跳B00否则跳+00返回】,程序就跳到B程序里,因为是返回运行,所以此时A程序暂停,开始B程序运行.
当B程序运行完后,必须要碰到【=======结束或返跳】才返回(否则会失控,且不可预料的运行下面指令),回到A程序里继续运行下面未完成的事情.

当碰到第2次的【如1那跳B00否则跳+00返回】,程序又跳到B程序内重复运行一遍,等B程序运行完,又回到A程序里继续运行下面未完成的事情.

总结:因为1个CPU上只能执行一个任务,虽然这2个程序都是定义在CPU-0号上,但执行是有先后顺序的,所以不违背控制器的法则.

⑦:(后台)控制3个不同程序有先后的同时运行子程序A---0线---X1触发-----程序内容-----如1那跳B00否则跳+00后台如0那跳+00否则跳C00后台=======结束或返跳子程序B---1线---无触发-----程序内容-----=======结束或返跳子程序C---2线---无触发-----程序内容-----=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入程序内容1:条件成立,那绝对的是运行"B00"(B程序的第00行)后台:同时运行0:条件不成立,那绝对的是运行"C00"(C程序的第00行)后台:同时运行程序结尾程序开头.
名称为B,CPU为1号,无触发:程序启动程序内容程序结尾程序开头.
名称为C,CPU为2号,无触发:程序启动程序内容程序结尾效果:按X1启动运行A程序,运行到第3行,碰到判断跳转语句【如1那跳B00否则跳+00后台】,程序就跳到B程序里,因为是后台运行,所以此时A和B程序同时运行.
当A运行到第4行,碰到另外一个判断跳转语句【如0那跳+00否则跳C00后台】,程序就跳到C程序里,因为是后台运行,所以此时ABC这3个程序同时运行.

最终效果:先A程序,再B程序,然后C程序,这3个程序是同时运行!
前提:要想同时运行,那每个子程序都必须在不同的CPU上,且子程序名不得重复⑧:(带返回和后台)控制多个程序先后与同时运行程序内容解释子程序A---0线---X1触发-----程序内容-----如1那跳B00否则跳00返回如1那跳C00否则跳00后台-----程序内容-----=======结束或返跳子程序B---1线---无触发------程序内容------=======结束或返跳子程序C---1线—无触发------程序内容------=======结束或返跳A程序开头语句.
程序配定在0号CPU内运行,X1启动该子程序A-----程序内容-----暂停A程序,跳到B程序运行B程序内容.
B程序运行完之后,跳回来继续运行A程序的内容开启C程序.
因为是后台运行.
因此A与C两个程序是同时进行的.
-----程序内容-----B程序开头语句.
程序配定在1号CPU内运行,无触发:程序启动-----程序内容-----程序结束语句.
C程序开头语句.
程序配定在1号CPU内运行,无触发:程序启动-----程序内容-----程序结束语句.
效果:开机按X1启动子程序A,A程序运行到第3行,执行【如1那跳B00否则跳00返回】语句,因为该语句为带返回属性的跳转语句,所以此时暂停A程序跳到B程序,运行B程序的内容.
B程序碰到【=======结束或返跳】语句时,表示已运行完B程序.
则跳回来继续运行A程序的内容.
当A程序执行【如1那跳C00否则跳00后台】语句时,开启C程序.
因为该语句为带后台属性的跳转,因此A与C两个程序是同时进行的(2个程序必须为不同的CPU).
各自的子程序都碰到相应的【=======结束或返跳】语句后,各自结束工作!

总结:虽然B和C这2个程序都是定义在CPU-1号上,但执行是有先后顺序,所以不违背控制器的法则⑨:多重跳转功能-循环嵌套(高级组合功能)跳(0=0)A:+23不返(高级判断语句)指令作用此语句是【如1那跳-02否则跳+02不返】的基础上,进行扩展和延伸,属高级判断语句.
因此具备了原有判断语句应有的功能,并添加了其他不常用的功能!

建议:尽量使用【如1那跳-02否则跳+02不返】语句(使用简单),此高级语句不得已才使用!
详细介绍此语句分2种类型:【高级判断:跳(a=1)+2:-1不返】与【条件赋值:a(X0=1)b:436】一、高级判断【跳(a=1)+2:-1】的介绍条件不成立条件成立条件成立吗判断的条件之一判定方式判断的条件之二跳转的行数或子程序跳转的行数或子程序跳转的属性跳(a=1)A:+23不返0-30常数a-z变量X0-X7输入信号有输入:1(常数)无输入:0(常数)=等于大于≥大等于≠不等于或(只要2边有一边大于0,条件就成立)与(必须2边同时大于0,条件才成立)反(必须2边同时为0,条件才成立)0-30常数a-z变量X0-X7输入信号有输入:1(常数)无输入:0(常数)+03:跳到该语句的下面第3行(相对位置)-01:跳到该语句的上面第1行(相对位置)05:跳到总程序的第5行(绝对位置)A00-Z00:跳到对应子程序名称里的第00行(如B02指子程序B的第02行,但我们一般不建议这样做:以后容易混淆或出错.
建议直接写B00,即从程序首行开始运行)一般用于跳到子程序才用,正常情况下都设成为【不返】不返:主程序跳出到【目标程序】后,等【目标程序】运行完,不用返回来继续运行【主程序】下面未运行的动作返回:主程序跳出到【目标程序】后,等【目标程序】运行完,还得返回来继续运行【主程序】下面未运行的动作碰到【====结束或返跳】开始返回后台:【主程序】跳出到【目标程序】后,【目标程序】开始运行.
但此时【主程序】也没关闭,即2个程序同时独立的运行.

前提:分配不同的CPU号跳转的示意图---程序内容------程序内容------程序内容------程序内容---跳(a=1)+03:-04不返---程序内容------程序内容------程序内容----程序内容---当a≠1,即条件不成立.
则运行"-04",跳到该判断语句的上面第4行绕过了该判断语句上面的第1-3行的语句.
跳到上面第4行后,程序继续往下运行当a=1,即条件成立.
则运行"+03",跳到该判断语句的下面第3行绕过了该判断语句下面的第1-2行的语句.
程序继续往下运行二、条件赋值【:a(X0=1)b:436】的介绍条件不成立(a=436)条件成立(a=b)条件成立吗赋值对象判定方式的条件内容赋值的内容赋值的内容a(X0=1)b:436a-z变量0-30常数a-z变量X0-X7输入信号有输入:1(常数)无输入:0(常数)=等于大于≥大等于≠不等于或(只要2边有一边大于0,条件就成立)与(必须2边同时大于0,条件才成立)反(必须2边同时为0,条件才成立)0-30常数a-z变量X0-X7输入信号有输入:1(常数)无输入:0(常数)a-z变量000-999常数概括:先判断条件是否成立如果条件成立,则a等于前面结果的数值(:b).
如条件不成立,则a等于后面结果的数值(436)程序举例条件赋值:a(X0=1)b:436赋值效果:当X0有感应时(数值为1),条件成立,则a=b.
当X0无感应时(数值为0),条件不成立,a=436条件判断:跳(a=1)+2:-1不返效果:当a=1时,条件成立,跳到该语句的下面第2行(绕过第1行).
当a≠1时,跳到该语句的上面1行在菜单内选择运行哪个程序先菜单的设定00行选择当前的程序00001(00行:表示菜单位置,数据采用00000格式)程序内容解释子程序A---0线---X2触发a变量:b(相互赋值函数)指令作用用变量(a-z)读取或赋值给系统其他位置的数值.
可实现坐标的读取与写入,菜单的读取与写入等详细介绍b变量:b变量a-z:左边的数值给右边菜单00(菜单上的数值,断电保存):相互辅值(无意义)先左边的值给右侧,再右侧的值给左侧坐标00(无意义)注意:当使用->命令的时候,会涉及到系统的EPPROM(掉电保存区域),因此运行此语句时比较耗时.
而且EPPROM的使用寿命并不长,因此我们不建议经常性的循环运行此语句(特别是->命令).
如要使用一般放在程序开头.

系统0000:X轴当前位置01:Y轴当前位置02:X轴显示偏移03:Y轴显示偏移04:系统时钟数05:本班工作数(工作计数器)06:当前在哪行(行数)07:端口寄存器(输出端口状态)08:X轴当前脉冲09:Y轴当前脉冲10:X轴是否旋转(是:1否:0)11:Y轴是否旋转(是:1否:0)程序举例①:读取菜单上的数值并使用先菜单的设定00行气缸开关次数00006(00行:表示菜单位置,数据采用00000格式)程序内容解释子程序A---0线---X2触发a系统00:X轴当前位置b->系统05:本班工作数a默认是00000,把00000写到X轴当前坐标,故达到了坐标清零的效果b默认是00000,把00000写到系统05:本班工作数,故清零了计数器注意:1:坐标清零之后,系统就认为清零后的位置为0MM.
如使用的是软件零点,则系统回零就到该位置.
如使用的是机械零点,因为回零时必须要碰到限位开关,系统才标记为0MM.
因此如果在中途坐标被清零,在回零的时候系统刚开始认为中途的位置是0MM.
但会判断到这个中途0MM的位置没有找到感应器,故系统还会继续寻找感应器,但此时寻找的速度为寻零速度(很慢)2:工作计数器清零,仅适用于临时计数器(重启后会自动清零).
如使用的是永久计数器(重启后不清零),则无效.
清零永久计数器方法:开机前,按F9,即可清零3:上文举例当然也不一定是清零用,也可以指定数值:程序内容解释a=03400b=00030a->系统00:X轴当前位置b->系统05:本班工作数A赋值数值为3400B赋值数值为30A是3400,把3400写入X轴当前坐标,故此时X坐标改为034.
00B是30,把30写入系统05:本班工作数,故计数器现在改为00030次③:对刀功能用处:步进/伺服电机的坐标对位用,免去输入坐标的繁琐操作程序内容解释子程序A---0线---校触发a菜单00:X行走距离X机正转0菜单速001.
00等停======结束或反跳程序开头语句.
程序配定在0号CPU内运行,按"校准键"启动该程序.
用变量a读取系统X轴当前位置(坐标).
把a读取的坐标数值,再写入到菜单0行内.
(此步骤可省略)X机正转距离:读取0菜单数值(即X轴之前保存的坐标)程序结束解释:按"校准键"程序启动(子程序语句这里不再介绍,看上文).
先a读取X轴当前位置(坐标).
当前X轴的坐标是手动时,按X+/X-移动后的位置.
然后程序运行a->菜单00:X行走距离,目的是把a读取的坐标数值,再写入到菜单0行内.
其实a此时也可以直接拿去给电机用了,故此步骤可省略.

为什么要这样做:1:把a的数值,写入到菜单0行内,可实现掉电保存.
因为菜单内的数值是支持掉电保存的(下文有举例)2:这样做可实现X轴行走的距离,即可以是对刀得来的,也可以是菜单内修改数值得来的,方便后期使用.

④:掉电保存功能(举例:循环工作断电后,重启还可继续运行)先菜单的设定00行当前循环次数00006(00行:表示菜单位置,数据采用00000格式)程序内容解释子程序A---0线---X2触发a菜单00当前循环次数循环结束=======结束或返跳程序开头语句.
程序配定在0号CPU内运行,X2启动该程序.
a读取菜单00行的值,一开始默认是6,即a现在为6循环开始(头),次数读取:a变量的值(00006)循环内容循环内容A自减1次,本来为6,现在是5.
下次循环为4.
3.
2.
1.
0把a的数值(5),写入菜单00行的位置,即覆盖原来的默认数值6,改为5程序结束语句.
解释:变量a一开始读取菜单00行的值,默认是6,即a现在为6.
然后开始循环,即6次.
程序运行到a=a-00001,让a自减1次,目的是记录当前循环还剩多少次.
再把a的数值(剩余次数)写入到菜单00行的位置,覆盖原来的值.
假设运行到循环一半位置的时候,突然的断电.
重启继续运行,启动后程序也是从头先读取菜单00的数值,而菜单00的数值,是之前循环运行中保存的还剩余的次数,因此实现了断电保存的功能.

缺点:当使用->命令的时候,会涉及到系统的EPPROM(掉电保存区域),因此运行此语句时比较耗时.
而且EPPROM的使用寿命并不长,因此我们不建议经常性的循环运行此语句(特别是->命令).

a=a+00001(十则运算语句)指令作用变量(a-z)的加减乘除等数学上常用的算法详细介绍a=a+00001a-z(变量)a-z(变量)00000-65535+:加法.
如初始a=0,经过a=a+00002,则a=2-:减法.
如初始a=3,经过a=a-00002,则a=1不能出现负数,否则会出现意外数值*:乘法.
如初始a=3,经过a=a*00002,则a=6最大不能超过65535,否则会出现意外数值/:除法.
如初始a=8,经过a=a/00002,则a=4只取整数部分,小数点省略&:与比较.
原理:1&1=1,0&0=0,1&0=0;|:或比较.
原理:1|1=1,0|0=0,1|0=1;∧:按位取反.
%:取余数.
取除法后剩下的余数:右移.
(适合输出口顺序工作用,如流水灯)a-z(变量)00000-65535部分运算的详解(不用可略过)1:&(与)和|(或)的详解(1)&(与)比较:原理:>0&>0=>0,0&0=0,>0&0=0,0&>0=0;总结:比较2个对象,只要任意有个对象是为0,则结果为0.
2个对象都是为>0时,则结果为>0(任意值)举例:⑴a=00003,b=00000,c=a&b.
结果C=00000⑵a=00300,b=10000,c=a&b.
结果C>0(任意值)⑶a=00010,a=a&00000.
结果a=00000(2)|(或)比较:原理:>0|>0=>0,0|0=0,>0|0=>0,0|>0=>0;总结:比较2个对象,只要任意有个对象是>0,则结果为>0(任意值).
2个对象都是为0时,则结果为0举例:⑴a=00003,b=00000,c=a|b.
结果C>0(任意值)⑵a=00300,b=10000,c=a|b.
结果C>0(任意值)⑶a=00000,a=a|00000.
结果a=000002:%:取余数.
如初始a=7,经过a=a%00006,则a=13::右移控制器约定:1:a=a:右移初始值a=13,经过a=a>00002(右移2次),结果a=3或二进制的0011解释:初始a=13(十进制),控制器会自动换成二进制,得到a=1101,经过a=a>00002(右移2次),得a=001101(其中01是最右边的数值,因为满额故舍弃),a又自动换成十进制,结果a=3或二进制的0011原理:1101右移2次,第1次01101,第2次001101,结果为001101(黑色为补的数字).
其中01是最右边的数值,因为满额故舍弃.
所以最终数值为00114:∧:按位取反原理:>0∧>0=0,0∧0=0,>0∧0=>0,0∧>0=>0总结:比较2个对象,如2个对象状态一样,则结果为0.
2个对象状态不一样,则结果为>0(任意值)过程:a=b∧c,首先系统把abc三个变量的值由十进制改为二进制.
然后b和c进行比较,把结果给a.
a再换成十进制.

举例:如b=00013,c=00003,经过a=b∧c,得出a=1110(二进制)或14(十进制)原理:先把b=00013(十进制)改为二进制为1101.
然后把c=00003(十进制)改为二进制为11然后进行比较:b1101c0011a1110得出a为1110(二进制)或14(十进制)程序举例①:两个(步进/伺服)电机配合走斜线思路:要想2个电机配合起来走斜线,第1点:2个电机是同时启动和同时结束.
第2点:控制斜线的角度,则需要2个电机是不同的距离和不同的速度.
其中不同的距离决定了不同的角度,控制不同的速度是为了2个电机同时结束.
知道这原理之后,为了使控制角度更加方便,只需提供1个电机的距离和速度,以及另外1个电机的距离,而另外1个电机的速度,通过公式算法自动得出.
今后,只要修改2个电机的距离就等于修改了斜线的角度,修改其中1个电机的速度(另外1个电机速度通过算法自动得出),就可以更改走斜线的速度.

a=03000b=01000c=01500d=a/be=c/dX机正转a速b不等Y机正转c速e等停======结束或反跳a赋值3000,今后用于X轴的距离.
故X轴行走030.
00mmb赋值1000,今后用于X轴的速度.
故X轴速度为010.
00MM/Sc赋值1500,今后用于Y轴的距离.
故Y轴行走015.
00mmd=a÷b.
即X距离÷X速度,故d代表了X轴行走的时间e今后用于Y轴的速度.
e=c÷d,即Y距离÷X行走时间=Y轴速度X轴控制语句,距离为a值,速度为b值.
不等:无需等X轴走完就运行下面语句Y轴控制语句,距离为c值,速度为e值.
等停:等Y轴走完才运行下面语句程序结束注意:因为除法运算,系统只取整数部分.
我们知道分母越大则整数部分就越小.
因此为了尽量保证精度,要尽可能的减小分母值.
(X距离÷X速度)这里的分母值为X轴的速度.
(Y距离÷X行走时间)这里的分母值为X轴行走的时间,而X轴行走的时间就是由(X距离÷X速度)得出.
总结可得出:X的距离和速度这2个参数是越小,控制则越精准!

②:(步进/伺服)电机补偿什么叫补偿:如1个加工件,在磨盘上抛光打磨.
打磨时间一旦长之后,磨盘表面高度就会降低,此时加工零件应该在原有基础上再增加一点距离.
这个距离就是电机补偿距离.

下面提供自动补偿和手动补偿的方法:子程序A---0线---F0触发a=02000循环开始00002次循环开始共00016次X机正转a速090.
00等停X机回零002.
00速090.
00等停循环结束a=a+00010循环结束=======结束或返跳子程序B---1线---F1触发a=a+00010=======结束或返跳子程序C---1线---F2触发a=a-00010=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:按F0a赋值2000,今后用于X轴的距离.
故X轴行走020.
00mm设置1个大循环,次数为2次.
这里目的是自动补偿2次设置1个小循环,次数为16次.
目的是电机往返16次之后,开始补偿1次电机正转,距离是a的值.
一开始a为2000,补偿之后为2010,2020电机回零到0mm改变a的数值,在这里10为补偿的值.
这里设置另外1个子程序,用于手动补偿.
增加距离这里设置另外1个子程序,用于手动补偿.
减小距离解释:先a给初始值为2000,目的是给X轴的距离用(020.
00mm).
然后进入大循环,其中大循环内还嵌有1个小循环,因此程序先运行小循环内容:X轴正转距离a的值(020.
00mm),然后X轴回到0MM.
这样小循环运行16次之后,小循环结束,跳到大循环,而大循环内容:a=a+00010,目的是修改a的值(X距离).
修改好之后,大循环又重新开始.

手动控制原理:这里做了ABC三个程序,其中子程序A为主程序,在CPU-0号运行,而子程序BC在CPU-1号运行,因为分配在不同的CPU上,故而在子程序A运行的时候,子程序B或C也可以运行.
而子程序B或C的程序内容就是修改a的值.
因为a是全局变量,即只要在某个地方修改过数值之后,其他程序内都有效!
从而达到,主程序A在运行当中,同时也可手动的修改X轴行走的距离③:两个感应器不同状态,运行不同程序(或比较)等待X0=1过00.
0后->a等待X1=1过00.
0后->bc=a|b如c那跳A00否则跳B00不返检测X0=1条件是否成立(有无感应),有感应a>0,无感应a=0检测X1=1条件是否成立(有无感应),有感应b>0,无感应b=0意思:X0,X1只有任意1个有感应,则C>0.
都无感应则C=0如C>0,则运行A程序.
如C=0,则运行B程序解释:先运行等待X0语句,因等待语句只是检测感应器状态,但无论有没有信号,程序都会往下运行.
如有感应a>0,无感应a=0.
再运行等待X1语句,道理上同.
然后运行c=a|b语句,因为或比较是2个对象,只要任意1个>0,则结果为>0.
因此X0,X1只有任意1个有感应,则C>0.
都无感应则C=0.

然后程序运行【如c那跳A00否则跳B00不返】,判断C是什么状态:C>0,则运行A程序.
如C=0,则运行B程序急停:线程5(可编程的急停)系统支持方式说明:为了系统的适用性和方便原则,提供了2种方式:系统固定的方式与可编程的方式系统固定的启动/暂停/急停方式优点:不需编程直接使用.
缺点:功能固定,不可更改,不可编程启动:支持3种启动方法1:按本机上的F0按钮2:触发本机上的启动输入接口3:在软件上,点击急停:支持3种急停方法1:按本机上的返回按钮2:触发本机上的急停输入接口3:在软件上,点击注意:急停分2种状态,在软件上可设置:1.
急停后动作归位到初始状态(推荐)2.
急停后动作保持当前状态暂停:支持3种暂停方法1:按本机上的F9按钮2:触发本机上的暂停输入接口2:在软件上,点击注意:暂停后,需按启动才能继续运行.
步进/伺服电机在运行当中不会立即暂停,而是执行完当前任务后暂停可编程的方式优点:用户可编程,可按照实际要求编程缺点:对新手来说,带来不便启动:运用系统的子程序语句(见下文举例)急停/暂停:运用急停/暂停线程语句(不建议使用)注意:因可编程的方式使用起来有时还需配合其他语句,故会导致编程的时候考虑不全面,从而达不到实际的效果.
所以原则上,不建议使用可编程的方式!

详细介绍急停:线程0可以急停并关闭目标CPU上的工作任务,其中急停:线程5为指急停所有CPU.
注意:1:急停分2种状态,在软件上可设置:1.
急停后动作归位到初始状态(推荐)2.
急停后动作保持当前状态,等再按1次后,归位到初始状态2:运行急停语句后,步进/伺服电机在运行当中不会立即急停,而是执行完当前任务后停下.
要想立即停下,只需在运行急停语句之前增加一条电机停下语句:X/Y缓停.
(下文有例程)暂停:线程0可以暂停目标CPU上的工作任务,其中暂停:线程5为指暂停所有CPU.
按F0可继续运行注意:不建议在程序内执行暂停语句,建议直接在控制器上用固定的暂停接口(稳定)!

注意:步进/伺服电机在运行当中不会立即暂停,而是执行完当前任务后暂停.

预留:X0在线程0的触发(预留功能)应用演示①:控制3个程序内其中一个的急停子程序A---0线---X1触发-----程序内容-----=======结束或返跳子程序B---1线---X2触发-----程序内容-----=======结束或返跳子程序C---2线---X3触发急停:线程1=======结束或返跳A程序内容.
名称为A,CPU为0号,启动方式:X1输入程序内容程序结尾B程序内容.
名称为B,CPU为1号,启动方式:X2输入程序内容程序结尾急停程序:名称为C,CPU为2号,启动方式:X3输入急停语句,线程1:急停第1号CPU的运行程序结尾解释:可以看出,这3个程序都是不同的名称,而且CPU也是不同,因此这3个程序可以同时独立运行.

效果:开机上电,这3个程序其实已经同时运行了,只是在等待各自的触发条件!
按X1启动A程序,按X2启动B程序.
当按X3的时候启动C程序,C程序运行到"急停:线程1"时,系统就会马上急停线程1的程序(即B程序),现在状态是B程序急停了,但A程序还在继续运行.

注意常见的逻辑问题:如A程序中有触发B程序的语句,虽然B程序当前已经急停过了,而A程序还在继续运行,随着A程序后期触发了B程序,使得B程序又自动的重新启动了.
所以一般建议还是都急停所有线程(线程5),来消除程序之间不必要的瓜葛!

②:控制有(步进/伺服)电机的急停子程序A---0线---X1触发-----程序内容-----X机正转040.
00速010.
00等停=======结束或返跳子程序B---1线---X2触发X机缓停急停:线程5=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入程序内容X电机运转语句程序结尾急停程序:名称为B,CPU为1号,启动方式:X2输入程序运行,第一步先停止电机(缓停:缓慢停下,急停:急刹停下)急停语句,线程5:急停所有程序程序结尾急停的前提:子程序A和B分别在不同的CPU上,因此2个程序可以独立运行.
解释:因为不管是【急停】还是【暂停】,电机都要先执行完当前的任务后才能停下,所以为了使按下急停按钮(X2)能马上停止电机工作,在急停语句之前,先进行电机的操作(缓停:缓慢停下,急停:急刹停下),等电机停下语句执行完,再来急停:线程5,来急停其他的工作!

显示:菜单00在0行00列正显(显示文字语句)指令作用目的:主界面上可自定义显示程序里的工作状态.
如变量a-z状态,菜单内容指令介绍显示:菜单00在0行00列正显菜单:显示对应菜单位置的内容a-z长:在屏幕上显示变量值长度:在指定区域范围内清空或反白计数:预留屏幕Y位置屏幕X位置正显:白字蓝底反显:白底蓝字清:把指定区域范围内清空白:把指定区域范围内反白a-z:预留功能应用演示①:临时工作计数器的制作子程序A---0线---X1触发循环开始xxxx次a=a+00001显示:a长05在1行00列正显01.
00秒循环结束=======结束或返跳程序开头.
名称为A,CPU为0号,启动方式:X1输入设置1个循环a自加1次,用a来记录循环了几次(计数器)把a的值显示在屏幕第1行00列,蓝底白字显示.
a的长度为5位延迟1秒②:运行中显示菜单内容-操作方法第一步:在菜单里设置好文字:如01行运行错误开启报警第二步:在程序里设置该语句:显示:菜单01在06行00列反显效果:程序一旦运行碰到此语句,就会在主界面上显示【01行菜单】的文字:运行错误开启报警显示位置:在屏幕上Y位置为:06行,X位置为:00列.
反白显示系统界面介绍与操作方法从第2章起,讲解了关于BR010标准版的介绍.
如不是使用该版本的控制器,可无需阅读控制器【界面介绍】与【权限分配】用户模式界面(开机默认):此界面不能编程,适合【设备的使用者(工人)】使用功能:【设备运行】【手动测试(控制输出/输入/电机)】【菜单参数修改】管理员界面:此界面不能编程,合适【调机与维修,厂方管理员】使用功能:【用户模式的全部功能】【可修改隐藏菜单的参数】程序员界面:此界面可编程,最高权限.
适合程序动作编辑人员功能:【用户+管理员模式】【菜单创建】【各界面的命名】【程序编程】【控制器固定功能使用】用户模式的操作方法(开机默认为用户模式)设备运行-用户模式①系统自带固定的方式(无需编程):启动:按F0或控制器背面的启动接口暂停:按F9或控制器背面的暂停接口急停:按返回或控制器背面的返回接口②可编程的方式:请查看说明书《第1章:1.
16节-急停:线程5》有详细说明手动测试-用户模式手动测试功能是无需编程就可以使用.
不管在任何界面,按"返回"键都可以回到主界面.

关于电气接线与具体操作,在NO1:《BR010快速编程指南与实例》的第1章就有详细讲解①【输出】手动测试方法常规方法:主界面下,按手动测试进入界面,按F0-F9和校准键可进行全部输出手动调试.
②【输入】手动测试:主界面下,按2次手动测试进入感应器页面.
判断:无感应为0,有感应为1③【电机】手动测试:快捷操作:在主界面上,直接按或键即可运行.
短按或键:点动电机运行长按或键:快速电机运行常规方法:在主界面上,按确认按钮,进入电机界面,按或键即可运行速度调整:按键,即可调整手动测试的移动速度菜单参数修改-用户模式菜单页面默认是没有任何意义的,需程序员给它命名和指向,详细方法查看本说明书的第3章①菜单界面查看的操作方法1在主界面下按设置-进入菜单界面2按键可进行菜单上下滚动选择3按返回键,返回到主界面②菜单数据的修改:选中某行菜单项,按设置此时数据上会出现小光标,按可移动光标,按可修改光标内数值,或直接输入F1-F9的数值.
数据修改完毕,按确认小光标消失,修改成功!
按返回回到主界面.

管理员模式的进入方法进入方法:在用户模式主界面下,按确认键3秒,进入管理员模式!
管理员模式主界面效果如图:因管理员模式只增加了【可修改隐藏菜单的参数】的功能,操作方法与用户模式一样,在此就不再阐述程序员模式的操作方法进入方法:在管理员模式主界面下,如需编程,按编程键,自动弹出进入程序员界面的密码:默认为12345,按确认键进入效果如图:程序员模式主界面效果如图:脱机编程方法前言1:系统支持2种编程方式,①在线电脑编程②脱机编程,原则上建议采用在线电脑编程,因为在电脑上编程和设置,要比脱机的方式来的更加方便与人性化.

2:在电脑上编程,可实现备份.
如今后批量生产,可实现一键导入.
脱机编程就不可以脱机编程什么时候用1:程序内容比较简单或动作逻辑明了,可用脱机方式2:当系统已经装入设备上,调试的时候发现程序上需要稍微修改,此时可用脱机的方式来的更加快捷!

程序编程进入方法如需编程和修改其他信息,首先需要进入程序员模式,因为程序员模式拥有系统最高的权限.
关于程序员模式的进入方法,上一章(第2章)有详细讲解!

编程步骤与操作第一步如不想给输出起设备名称,可跳过该步骤在输出测试界面里命名对应的设备名称操作方法:在程序员模式主界面下,按手动测试进入界面.
按可换行,按确认进行文字修改(输入方法查看下文).
支持文字连打,即F1,F2,F3的名字是一起打的,系统会自动分割文字长度,并根据格式对号入座!

按返回可返回上级界面无需编程,系统即可进行输出的手动测试(右图)对应接口说明:【F1-Y0】【F2-Y1】【F3-Y2】【F4-Y3】【F5-Y4】【F6-Y5】【F7-Y6】【F8-Y7】【F9-Y8】【F0-Y9】【校准-Y10】第二步如不想给输入起设备名称,可跳过该步骤在输入测试界面里命名对应的设备名称操作方法:在程序员模式主界面下,按2次手动测试进入界面.
按可换行,按确认进行文字修改(输入方法查看下文).
支持文字连打,道理与输出的一样按返回可返回上级界面使用说明:此功能无需编程就可使用,【0-表"无信号"输入】,【1-表"有信号"输入】对应接口说明:【X0-X0】【X1-X1】【X2-X2】【X3-X3】【X4-X4】【X5-X5】【X6-X6】【X7-X7】解释:为什么要事先改好输出、输入的各种设备名称1:当输入输出有对应名称后,控制器就会进行绑定.
以后用户进行手动测试和电路接线调试时,会很直观2:程序编程的时候,调用输入输出时,会自动显示对应名称,而不是单调的编号,让编程起来更加清楚方便第三步如以后调参数,只需在程序内修改,而不需要在菜单内进行的,可跳过此步骤在菜单界面里预先创建好菜单项:(右图)关于菜单的创建:下一章(第4章)有详细讲解由菜单名称、显示格式、菜单属性三部分组成大致的操作方法:主界面下,按设置进入菜单界面.
按可换行,按确认进行文字修改(输入方法查看下文).
按可更改菜单数据格式,按可更改菜单属性.

菜单数据的修改:选中某行菜单项,按设置此时数据上会出现小光标,按可移动光标,按可修改光标内数值,或直接输入F1-F9的数值.
数据修改完毕,按确认小光标消失,修改成功!

注意事项:菜单屏幕的最上行有对应菜单项的行数显示(画线部分),此行数用于程序调用该菜单数据时的行数.

文字编辑小技巧:当菜单文字内容相差不多时,可按F7进行复制,再按F8进行粘帖.

第四步[必须用]在程序界面里编写动作流程操作方法:在程序员模式主界面下,按编程进入编程界面.
按可换行,按F9可增加一行程序,按F0可删除一行程序.

编程方法:按确认或设置此时会在选中的程序上出现小光标,按可选择控制器所有的指令.
选中一条指令后,按或可移动小光标,按确认或设置可修改光标的数值.
程序编程好,按返回小光标消失,再按返回提醒是否保存按确认保存,程序编程完毕!
退出到主界面.
登入该说明书操作视频可观看演示注意事项:一行程序对应填写一条指令,共可填写100条指令.
在屏幕的最上行有总行数和当前行数的显示.

程序是从上往下流水式运行,所以在编程之前,要事先整理好编程的动作.

编程小技巧:当指令内容相差不多时,可按F7进行复制,再按F8进行粘帖第五步[可不用]自定义主界面的文字和显示布局,让控制器更加符合你的风格.
一般不建议客户去修改下一章(第4章)有详细讲解第六步[可不用]编程完成,是否需要添加控制器的固定功能使用方法:查看《BR010快速编程指南与实例》-第3章-3.
3.
3节有介绍如1:使用次数的限制2:管理员密码的修改3:是否要备份数据等等*文字输入方法介绍(附录)前言:因储存空间有限,故字体并不齐全,可向厂家联系添加!
输入对象:【输出设备的名称】【输入信号的名称】【菜单内容的名称】【主界面的文字】空格的输入:1:选中要命名的目标,按确认弹出输入框,开始输入文字2:删除已输入的文字:按F0或ESC移动光标:F5与F63:按进行首字母选择.
按或进行对应文字的选中4:选中要输入的文字,按设置键确认输入.
注:如系统内没有该字体,会出现1个"斧头"的图标5:输入完毕,按确认完成输入并返回到界面附*菜单创建与界面的命名菜单的创建步骤菜单的创建需要分4个步骤即可完成:如右图第一步:自定义菜单的名称第二步:选择菜单的数据格式(00.
00或00000或000.
00等)第三步:修改菜单的属性(用于是否隐藏该菜单)第四步:菜单数据的调用(在程序内当用)自定义菜单的名称操作方法:在程序员主界面下,按设置键,进入菜单界面.
按键进行菜单上下滚动选择.
选中要修改的菜单,按确定键弹出输入法界面,此时可进行文字名称的修改!
输入操作方法查看第3章《3.
4节*文字输入方法介绍》按返回键,返回到上一级文字编辑小技巧:当菜单文字内容相差不多时,可按F7进行复制,再按F8进行粘帖选择菜单的数据格式操作方法:在程序员模式的菜单界面下-按键可更改菜单数据格式.
控制器共有9种格式可供选择:样式转换为程序里面的数值应用样式000.
000-99.
99的数字延迟时间专用单位:00.
00秒样式1000.
00-999.
9的数字延迟时间专用单位:000.
0秒样式2000-99的数字计数、延迟等普通数值样式3是否是:1,否:0菜单功能选择用样式4一号暂未开发暂未开发样式5空无数值无意义样式600-9的数字计数、延迟等样式70000000000-65535的数字计数、延迟等样式8000.
00000.
00-655.
35【步进/伺服电机】的距离和速度专用修改菜单的属性操作方法:在程序员模式的菜单界面下-按键可更改菜单属性.
控制器共有4种属性可选择:样式解释空菜单正常显示.
效果:用户模式/管理员模式/程序员模式均可见X隐藏该行菜单内容!
效果:用户模式隐藏.
管理员/程序员模式可见M功能:把菜单的文字内容,显示在主界面上.
(修改主界面的名称)用户模式隐藏,管理员/程序员模式可见使用方法:查看本章下文《自定义主界面的文字和布局》T暂无功能菜单数据的调用前言:做完前面的几个步骤后,只是把菜单创建好而已,因为系统不知道这菜单是用到什么地方,所以目前是没有任何的意义.
我们要在程序内进行调用,这样系统就会把菜单的数据与程序的相应位置进行绑定!

使用方法:在程序内,有些指令支持直接调用菜单数据.
如【等:菜单00xxxxxx】或【X机正转菜单1速菜单2不等】等,这里的菜单00和菜单1表示该数值是读取菜单对应位置的数据.
菜单的行数位置显示:应用举例:上图中,【步进电机行走距离】的行数位置为00行,数值为120.
00只要在程序里写:【X机正转0菜单速100.
00不等】,这样电机正转的距离会自动读取菜单0位置的数值:120.
00如何关闭和修改默认的开机界面【次=智能微电脑控制=】的关闭:程序员模式下,按【设置】-进入菜单,找到菜单的第27行.

【次=智能微电脑控制=M06001】,按键更改菜单属性,修改为【次=智能微电脑控制=X06001】原理:把M:显示菜单文字属性,改为X:隐藏属性.
当然也可以选择不关闭,按【确认】键直接修改该行菜单的文字内容.

如要修改显示位置,更改06001的数值:06为显示屏幕X方向的位置(共00-24),00为显示屏幕Y方向的位置(共00-07),1为显示方式:1白底蓝字,0蓝底白字【请按启动键】的关闭和修改:程序员模式下,按【设置】-进入菜单,找到菜单的第28行.

【请按启动键M13030】,按键更改菜单属性,修改为【请按启动键X13030】原理:把M:显示菜单文字属性,改为X:隐藏属性.
当然也可以选择不关闭,按【确认】键直接修改该行菜单的文字内容.
如该改显示位置,方法如上同【准备就绪】的关闭和修改:程序员模式下,按【设置】-进入菜单,找到菜单的第29行.
【准备就绪M13030】,按键更改菜单属性,修改为【准备就绪X13030】原理:把M:显示菜单文字属性,改为X:隐藏属性.
当然也可以选择不关闭,按【确认】键直接修改该行菜单的文字内容.
如该改显示位置,方法如上同XY坐标显示的关闭:程序员模式下,按【设置】进入菜单:X坐标关闭:菜单第46行【X轴主界面显坐标X08062】修改为【X轴主界面显坐标X08060】Y坐标关闭:菜单第58行【Y轴主界面显坐标X16062】修改为【Y轴主界面显坐标X16060】原理:08062为显示位置参数:08为显示在屏幕X方向位置,06为显示在屏幕Y方向位置.
最后一位2:0显示关闭,1蓝底白字显示,2白底蓝字显示.
知道这原理后,也可自定义更改坐标显示的位置.

湖北22元/月(昔日数据)云服务器,国内湖北十堰云服务器,首月6折

昔日数据怎么样?昔日数据新上了湖北十堰云服务器,湖北十堰市IDC数据中心 母鸡采用e5 2651v2 SSD MLC企业硬盘 rdid5阵列为数据护航 100G高防 超出防御峰值空路由2小时 不限制流量。目前,国内湖北十堰云服务器,首月6折火热销售限量30台价格低至22元/月。(注意:之前有个xrhost.cn也叫昔日数据,已经打不开了,一看网站LOGO和名称为同一家,有一定风险,所以尽量不要选择...

cloudcone:特价便宜VPS补货通知贴,SAS或SSD低价有磁盘阵列,SAS或SSD raid10 硬盘

cloudcone经常性有特价促销VPS放出来,每次的数量都是相当有限的,为了方便、及时帮助大家,主机测评这里就做这个cloudcone特价VPS补货专题吧,以后每次放货我会在这里更新一下日期,方便大家秒杀!官方网站:https://cloudcone.com/预交费模式,需要充值之后方可使用,系统自动扣费!信用卡、PayPal、支付宝,均可付款购买!为什么说cloudcone值得买?cloudc...

欧路云(22元) 新增美国Cera线路VPS主机且可全场8折

欧路云(oulucloud) 商家在前面的文章中也有陆续介绍过几次,这不今天有看到商家新增加美国Cera线路的VPS主机,而且有提供全场八折优惠。按照最低套餐最低配置的折扣,月付VPS主机低至22元,还是比较便宜的。不过我们需要注意的是,欧路云是一家2021年新成立的国人主机商,据说是由深圳和香港的几名大佬创建。如果我们有介意新商家的话,选择的时候谨慎且月付即可,注意数据备份。商家目前主营高防VP...

测试网速命令为你推荐
主机空间大家有用主机屋子的空间吗?到底要怎样备案?免费虚拟空间找个免费的虚拟主机空间,20M以上的免费国外空间免费国外空间免费国内空间跪求国内最好的免费空间!台湾vps做一个论坛,请问需要什么样的vps配置云服务器租用云服务器怎么租呀域名备案买域名要备案吗域名备案域名怎么备案免备案虚拟空间香港免备案虚拟主机空间怎么样山东虚拟主机山东东营制作网站的公司在哪里?
什么是域名 深圳域名空间 韩国vps俄罗斯美女 免费域名解析 美国主机排名 域名商 服务器评测 edis mach 美国主机论坛 ixwebhosting 万网优惠券 主机合租 一元域名 发包服务器 刀片服务器的优势 免费吧 免费测手机号 联通网站 美国盐湖城 更多