由于JOG进给倍率可在0~655.34%,切削进给倍率可在0~254%如此宽的范围内修调,仅用二进制转换开关,硬件上是很难实现的。这可以通过软件PLC编程来解决。本文介绍PLC功能指令:二进制代码转换CODB。它的优点在于配合1个二进制编码开关便可实现任意所需倍率设定的功能(倍率值及倍率数目都可根据需要来设定,而倍率值与二进制编码开关输入信号无直接关系)。CODB指令是将转换表中指定的数据转换为1字节、2字节或4字节格式的二进制数据,以补码形式输出到目标地址。
1)控制条件
(1)复位信号RST, "0”表示不复位;“1”表示将错误输出W1复位。
(2)工作指令ACT, “0”表示不执行CODB指令;“1”执行CODB执行。
2)参数
(1)指定转换表中数据的存储格式,“1”表示1个字节的二进制(byte); “2”表示2字节的二进制(word);“4”表示4字节的二进制(Dword)。
(2)转换表中数据的数量,表中最多可以容纳256个字节。
(3)转换表数据输入地址,转换表中的数据可通过指定表中的数据编号(第1个数据编号为0)取出,指定编号的地址称为转换数据输入地址,长度占一个字节。
(4)转换数据输出地址,存储输出数据的地址称为转换数据输出地址。长度为以指定地址开始在格式中规定的连续字。
3)转换数据表,该表编在数据输出地址与错误输出W1之问。
4)输出,如果在CODB指令执行有异常时,W1输出为“1”,表明出错。
利用CODB指令进行倍率修调的原理就是将二进制编码开关的输入信号看作转换表的数据编号,把所对应的表中数据以二进制补码形式输出到倍率信号接口地址GO10 ~GO11或6012中去。所设倍率的数目由硬件开关的形式和转换表中数据的数量决定;转换表数据输入地址用来存储编码开关的输入信号状态。表内数据是如何经指令执行后输出为相应的倍率信号的。
3 设置转换数据表
要得到所需的倍率,关键在于如何正确设置转换数据表,这也是使用CODB的核心所在。要弄清设置规律,首先说明有关二进制码的儿个概念。
(1)有符号数的二进制码最高位表示符号位,正数为“0";负数为“1 ",
(2)正数的补码为其本身;
(3)负数的补码为除去符号位的各个位取反加“1”;
(4)辛卜码的补码即为原码。
以JOG倍率转换表来说明设置方法。先将所需的倍率转换为对应的倍率信号*JVO~*JV15,这就是CODB指令输出的目标值。由于CODB转换表中的数据是以补码形式输出,则对*JV0^-*JV15所表示的二进制数取补码,便得到其原码,即转换表中要设定的数据。
以10%及100%为例,*JV0~*JV15中对应的值为:
其它类推,最终可以得出:
(1)当倍率<327.68%,即*JV 15=1,转换数据为负数时,转换表中的数据=-NX 100+1);
(2)当倍率)327.68%,即*JV15=0,转换数据为正数时,转换表中的数据为:
65535-NX100,其中N为所设倍率X1000
如倍率150%对应转换表中的数据就应为:
-(150X100+1)=-15001。
同样可知,在切削进给倍率修调编程中,当倍率<128,即*FV7=1,转换数据为负数时,转换表中的数据-((N+1)。当倍率)128,即*FV7=0,转换数据为正数时,转换表中的数据=255-N。
其中N为所设倍率+1000
如倍率150%对应转换表中的数据就应为:
255-150=105。
总结起来,便是将所要的倍率对应的二进制信号取补码后再转换为带符号十进制数,即得CODB转换表中的数据。