FX系列PLC的功能指令详解请参考有关参考书或手册,本节只作简单介绍。
(一)程序流控制指令FNC00~FNC09
此类指令用于改变程序的顺序执行,共10条。
1.条件跳转CJ
CJ指令格式如下:
图2-50 CJ指令的使用说明
如图2-50所示,若X10为ON,程序跳到标号P8处;否则,顺序执行。
一个标号只能出现一次,若出现多于一次则会出错。两条跳转指令可以使用共同的标号。若执行条件使用M8000,则为无条件跳转。
2.主程序结束FEND
FEND指令格式如下:
程序执行到FEND时,PLC进行输入处理、输出处理、监视定时器刷新,完成后返回第0步。
3.子程序调用CALL与子程序返回SRET
CALL与SRET指令格式如下:
图2-51 CALL指令的使用说明
子程序应写在主程序之后,即子程序的标号应写在指令FEND之后,且子程序必须以SRET结束。如图2-51所示,当X10为ON时,CALLP20指令使程序执行P20子程序,在子程序中执行到SRET指令后程序返回到CALL指令的下一条指令(本例中的第104步)处执行。若X10为OFF,则程序顺序执行。
在子程序中可以再次使用CALL指令,形成子程序嵌套,总共可以有5级嵌套。
4.中断返回IRET、允许中断EI、禁止中断DI
IRET、EI、DI指令格式如下:
图2-52 中断指令的使用说明
FX系列PLC可设置9个中断点,中断信号从X0~X5输入(中断信号的脉宽必须超过200μs),有的定时器也可以作为中断源。中断服务程序的标号为I×××。指令EI~DI之间的程序段为允许中断区间,而DI~EI之间为禁止中断区间。当程序执行到允许中断区间并且出现中断请求信号时,PLC跳到相应的标号处执行中断服务程序,遇到中断返回指令IRET后返回断点处继续执行主程序。如图2-52所示,当程序执行到允许中断区间时,若X0或X1为ON,则去执行相应的中断程序(1)或(2)。中断程序也应写在主程序之后,且必须以IRET结束。
当有关的特殊辅助继电器置1时,相应的中断程序不能执行。例如,若M805*为1时,相应的中断程序I*××不能执行。执行一个中断程序时,其它中断自动被禁止。但如果在该中断程序中编入EI和DI指令时,则响应其它中断。最多可以实现2级中断嵌套。如果中断信号产生于禁止中断区间,这个中断信号被存储,并在EI指令之后被执行。
5.监视定时器刷新WDT
WDT指令格式如下:
如果扫描时间(从第0步到END或FEND)超过100ms,PLC将停止运行。在这种情况下,应将WDT指令插到合适的程序步(扫描时间不超过100ms)中刷新监视定时器。
6.循环开始FOR、循环结束NEXT
FOR、NEXT指令格式如下:
FOR~NEXT之间的程序重复执行n次(由操作数指定)后再执行NEXT指令后的程序。循环次数n的范围为1~32767。若n的取值范围为-32767~0,循环次数作1处理。
FOR与NEXT总是成对出现,且应FOR在前,NEXT在后。
利用CJ指令可以跳出FOR-NEXT循环体。
(二)传送与比较指令FNC10~FNC19
1.比较CMP
CMP指令格式如下:
图2-53 CMP指令的使用说明
CMP指令有三个操作数:两个源操作数[S1·]和[S2·],一个目标操作数[D·]。指令将[S1·]和[S2·]进行比较,结果送到[D·]中。使用说明如图2-53所示,当X10为ON时,比较100和C20当前值的大小,分三种情况分别使M0、M1、M2中的一个为ON,另两个则为OFF;若X10为OFF,则CMP不执行,M0、M1、M2的状态保持不变。
2.区间比较ZCP
ZCP指令格式如下:
ZCP指令是将一个操作数[S·]与两个操作数[S1·]和[S2·]形成的区间比较,且[S1·]不得大于[S2·]。
3.传送指令MOV
MOV指令格式如下:
将源操作数[S·]传送到目标元件[D·],即[S·]→[D·],源操作数不变。
4.移位传送指令SMOV
SMOV指令格式如下:
SMOV指令的使用说明如图2-54所示,首先将二进制的源数据(D1)转换成BCD码(D1′),然后将BCD码移位传送,实现数据的分配、组合。源数据BCD码右起从第4位(m1=4)开始的2位(m2=2)移送到目标D2′的第3位(n=3)和第2位,而D2′的第4和第1两位BCD码不变。然后,目标D2′中的BCD码自动转换为二进制数,即为D2中的内容。BCD码值超过9999时出错。
图2-54 SMOV指令的使用说明
5.取反传送CML
CML指令格式如下:
将源操作数中的数据(自动转换为二进制数)逐位取反后传送。
6.块传送BMOV
BMOV指令格式如下:
将源操作数开始的n个数据组成的数据块传送到指定的目标。指令操作数顺序依次为[S·]、[D·]和n。
如果元件号超出允许的范围,数据仅传送到允许的范围内。如果源、目标操作数的类型相同,传送顺序既可从高元件号开始,也可从低元件号开始。传送顺序是自动决定的,避免源操作数被该指令传送的其他数据冲掉。若用到需要指定位数的位元件,则源、目标所指定的位数必须相同。
利用BMOV指令可以读出文件寄存器(D1000~D2999)中的数据。
7.多点传送FMOV
FMOV指令格式如下:
源操作数传送到指定目标开始的n个目标元件中,例如:
将0送至D100~D119中
如果元件号超出元件号范围,数据仅传送到允许范围的元件中。
8.交换XCH
XCH指令格式如下:
9.BCD变换、BIN变换
BCD、BIN指令格式如下:
BCD是将源元件中的二进制数转换为BCD码送到目标元件中。对于16位或32位二进制操作数,若变换结果超出0~9999或0~99999999的范围就会出错。
BCD指令常用于将PLC中的二进制数变换成BCD码输出以驱动LED显示器。
BIN是将源元件中的BCD码转换为二进制数送到目标元件中。常数K不能作为本指令的操作元件。如果源操作数不是BCD码就会出错。
BIN指令常用于将BCD数字开关的设定值输入到PLC中。
(三)算术运算和逻辑运算指令FNC20~FNC29
1.加法ADD、减法SUB
ADD、SUB指令格式如下:
图2-55 浮点加法
ADD是将指定的源元件中的两个二进制数相加,结果送到指定的目标元件。数据为带符号数,二进制数的最高位作为符号位(0为正,1为负)。
如果运算结果为0,则零标志M8020置1。如果运算结果超过32767(16位运算)或2147483647(32位运算),则进位标志M8022置1。如果运算结果小于-32768(16位运算)或-2147483648(32位运算),则借位标志M8021置1。在32位运算中,被指定的字元件是低16位元件,下一个元件为高16位元件。
如果在加法指令之前置1浮点操作标志M8023,则可进行浮点值的加法,如图2-55所示。
减法指令SUB与ADD指令类似。
2.乘法MUL、除法DIV
MUL、DIV指令格式如下:
MUL是将两个源元件中的数据的乘积送到指定目标。如果为16位乘法,则乘积为32位;如果为32位乘法,则乘积为64位,如图2-56所示。数据的最高位是符号位。
图2-56 MUL指令的使用说明
如果目标元件用位元件指定,则只能得到指定范围内的乘积。
可以进行16位和32位除法,得到商和余数,如图2-57所示。若指定位元件为目标元件,则不能得到余数。
图2-57 DIV指令的使用说明
对于16位乘、除法,V不能用于[D·]。对于32位运算,V和Z不能用于[D·]。
3.加1INC、和减1DEC
INC、DEC指令格式如下:
操作数只有一个,且不影响进位和借位标志。在图2-58中,Z由复位输入X10清零。每次X11由OFF变为ON时,计数器C0~C9的当前值依次被转换为BCD码并输出到Y0~Y17。加1和减1指令不影响标志位。
4.与WAND、或WOR、异或WXOR
WAND、WOR、WXOR指令格式如下:
图2-58 INC指令举例
5.求补NEG
NEG指令格式如下:
(四)循环移位和移位指令FNC30~FNC39
1.右循环移位ROR、左循环移位ROL
ROR、ROL指令格式如下:
ROR、ROL指令使用说明如图2-59所示,每次X10由OFF变为ON时,各位数据循环移位4(n=4)次,最后一次从目标元件中移出的状态存于进位标志M8022中。
图2-59 ROR、ROL指令的使用说明
若在目标元件中指定位元件的位数时,则只能用K4和K8,如K4Y0、K8M10等。
2.带进位循环右移RCR、带进位循环左移RCL
RCR、RCL指令格式如下:
使数据连同进位标志一起循环移位n位。
3.位右移SFTR、位左移SFTL
SFTR、SFTL指令格式如下:
使目标位元件中的状态向右/左移位,由n1指定位元件的长度,n2指定移位的位数,n2≤n1≤1024。SFTR指令说明见图2-60。对于SFTL,则[S·]指定的源数据移入[D·]指定的目标位元件的最低n位。
图2-60 SFTR指令的使用说明
4.字右移WSFR、字左移WSFL
WSFR、WSFL指令格式如下:
使字元件中的数据移位,由n1指定字元件的长度,n2指定移位的字数,n2≤n1≤512。若源操作数和目标操作数指定位元件时,其位数应相同。WSFR的指令说明见图2-61。
图2-61 WSFR指令的使用说明
5.先入先出(FIFO)写入SFWR、读出SFRD
SFWR、SFRD指令格式如下:
SFWR指令的使用说明如图2-62所示。当X10首次由OFF变为ON时,SFWR将源元件D0中的数据写入D2,而D1作为指针变为1(指针D1必须先清0)。当X10再次由OFF变为ON时,D0中的数据写入D3,D1中的数据加1变为2。其余类推,将D0中的数据依次写入寄存器。
图2-62 SFWR指令的使用说明
显然,数据从最右边的寄存器开始依次写入,写入的次数放在D1中,故称D1为指针。当D1的内容达到n-1后,上述操作不再执行,进位标志M8022置1。
SFRD指令的使用说明如图2-63所示。当X10首次由OFF变为ON时,SFRD将源元件D2中的数据读出到D20,而D1作为指针减1,D10到D3的数据右移一字。若用连续指令SFRD,则每个扫描周期数据右移一字,而数据总是从D2读出。当指针D1为0时,上述操作不再执行,零标志M8020置1。
图2-63 SFRD指令的使用说明
先入先出(FIFO)控制常用于按产品入库并顺序从库内取出产品。
(五)数据处理指令FNC40~FNC49
1.区间复位ZRST
ZRST指令格式如下:
[D1·]和[D2·]指定的应为同类元件,指令使[D1·]~[D2·]的元件复位,如图2-64所示。[D1·]指定的元件号应小于或等于[D2·]指定的元件号。若[D1·]号大于[D2·]号,则只有[D1·]指定的元件被复位。[D1·]、[D2·]也可以同时指定32位计数器。
2.解码DECO、编码ENCO
DECO、ENCO指令格式如下:
图2-64 ZRST指令的使用说明
对于DECO,目标元件的每一位都受控。当[D·]指定的目标元件是T、C、D时,应使n≤4;当[D·]指定的目标元件是Y、M、S时,应使n≤8。目标元件数为2n。
在图2-65中,源操作数X2X1X0(n=3)=011B=3,则M10以下第3个元件MB被置1;若X2X1X0=000时,则M10(第0个元件)被置1。
图2-65 DECO指令的使用说明
图2-66 ENCO指令的使用说明
对于ENCO,当[S·]指定的源元件是T、C、D、V、Z时,应使n≤4。若指定源元件中为1的位不止一个,则只有最高位的1有效。若指定源元件中所有位均为0,则出错。指令使用说明如图2-66所示。
3.统计置1位数SUM
SUM指令格式如下:
若(D0)=21847=0101010101010111B,则(D2)=9。若目标元件中没有1,则零标志M8020同时置1。若使用32位操作数,则将D1和D0中1的总数存入D2,D3中为0。
4.置1位判别BON
BON指令格式如下:
用于检测指定元件中的指定位是否为1。在图2-67中,测试源元件D10中的第15位(n=15),根据其为1或0,相应将目标位元件M0变为ON或OFF。即使X10变为OFF,M0亦保持不变。对于16位操作数,n=0~15;对于32位操作数,n=0~31。
图2-67 BON指令的使用说明
5.平均值MEAN
MEAN指令格式如下:
将n个源操作数的平均值送到指定目标元件。平均值指n个源操作数的代数和被n除所得的商,余数略去。若元件超出指定的范围,n值会自动缩小,计算出允许范围内数据的平均值。若n值超出1~64,则出错。
6.报警器置位ANS
ANS指令格式如下:若X0和X1同时为ON并超过定时器T0的定时时间1s,S900置1(用于报警);在计数过程中,若此指令不被驱动,则定时器复位,而状态标志保持不变。
7.报警器复位ANR
ANR指令格式如下:
例如:X3变为ON时,S900~S999之间被置1的报警器复位。若1个以上报警器被置1,则元件号最低的那个报警器先被复位。当X3再次变为ON时,下一个被置1的报警器复位。若使用连续指令ANR,则按扫描周期依次将报警器复位。
8.平方根SQR
SQR指令格式如下:
当源数据为负数时,计算结果出错,M8067置ON;当计算结果为零时,M8020置ON;当计算结果经过四舍五入圆整时,M8021置ON。
9.浮点操作FLT
(略)
(六)高速处理指令FNC50~FNC59
1.刷新REF
REF指令格式如下:
通常,PLC采用I/O批处理的方法进行工作。刷新指令REF用于在某段程序处理时即时读入最新输入信息或者在某一操作结束后立即将操作结果输出。刷新分输入刷新和输出刷新两种。
(1)输入刷新。当X0由OFF变为ON,输入X10~X17一共8点被刷新。若在本指令执行之前X10~X17已经变为ON约10ms(滤波器响应延迟时间),则执行本指令时X10~X17的映像寄存器会变为ON,因此REF指令有10ms的响应延迟时间。
(2)输出刷新。将Y0~Y7、Y10~Y17、Y20~Y27的24点输出刷新,对应的输出锁存器的数据立即传到输出端子,在输出响应延迟时间后输出接点动作。
2.刷新和滤波时间调整REFF
REFF指令格式如下:
为防止输入噪声的影响,PLC的输入端都有RC滤波器,滤波时间常数约为10ms。对于没有抖动噪声的无触点电子固态开关,可以高速输入。
FX2系列的输入X0~X7采用了数字式滤波器,滤波时间可以用REFF指令在0~60ms的范围内进行调整。若X10为OFF,本指令不执行,输入滤波时间为缺省值10ms;若X10为ON时,X0~X7的输入滤波时间为8ms。然而,这些输入端也有RC滤波,当n=0时,最小滤波时间为50μs。
当X0~X7用作高速计数输入、作为FNC56速度检测指令的计数输入或者用作中断输入时,输入滤波器的滤波时间自动设置为50μs。
3.矩阵输入MTR
MTR指令格式如下:
利用MTR指令可以构成连续排列的8点输入与n点输出的n×8输入矩阵,指令使用说明及PLC连接如图2-68所示。
图2-68 MTR指令的使用说明
由[S]指定的输入元件开始的8个输入(本例为X10~X17)和由[D1]指定的输出元件开始的n个晶体管输出点(本例n=3,即Y20、Y21、Y22)反复顺次接通。当Y20为ON时,读入第一行的数据,存到M30~M37中;当Y21为ON时,读入第二行的数据,存到M40~M47中。其余类推,反复执行。
MTR指令按中断方式执行,当输入滤波时间为10ms时,PLC每20ms扫描一次矩阵。若矩阵为8×8的64点矩阵,全部扫描时间为20ms×8=160ms,因而不适于需要快速响应输入的场合。如果输入点采用高速输入,则每行的扫描时间为10ms,扫描速度加倍。
标志M8029在第一个读入周期完成后置1。当本指令的执行条件X0变为OFF时,M8029复位,M30~M57的状态保持不变。
4.高速计数器置位HSCS
HSCS指令格式如下:
利用本指令可使置位和输出以中断方式立即执行,即高速计数器以中断方式对相应输入脉冲的个数计数。当计数器的当前值达到预定值时,计数器的输出接点立即动作。当C255的当前值由99变为100或由101变为100时,Y10立即置1。
5.高速计数器复位HSCR
HSCR指令格式如下:当C255的当前值由199变为200或由201变为200时,Y0立即复位。
6.高速计数器比较HSZ
HSZ指令格式如下:
HSZ指令与ZCP指令类似,但HSZ中的[S3·]是专门指定的高速计数器。指令使用说明如图2-69所示,满足指令执行条件时,当C251的当前值<K1000时,Y10为ON,Y11、Y12为OFF;当K1000≤C251的当前值≤K1200时,Y11为ON,Y10、Y12为OFF;当C251的当前值>K1200时,Y12为ON,Y10、Y12为OFF。
计数、比较、外部输出均以中断方式进行,而HSZ指令仅在脉冲输入时才能执行,所以最初应由ZCP指令驱动。(www.xing528.com)
7.速度检测SPD
SPD指令格式如下:
图2-69 HSZ指令的使用说明
图2-70 SPD指令的使用说明
[S1·]指定计数脉冲输入点,[S2·]指定计数时间(以ms为单位),[D·]指定计数结果存放处。如图2-70所示,其中:D1对由X0输入的脉冲的上升沿计数;100ms后计数结果存入D0,同时D1清0,重新开始对X0计数;D2用于计算并存放剩余时间。
上述过程是反复进行的,D0的值正比于转速值。转速N的计算公式如下
式中 n——编码器码盘的齿数,见图2-70。
注意:本指令用到的输出不得用于其它高速处理。
8.脉冲输出PLSY
PLSY指令格式如下:
如图2-71所示,[S1·]指定脉冲频率(1~1000Hz)。[S2·]指定产生脉冲的数量,其范围:16位指令,1~32767;32位指令,1~2147483674,若指定产生脉冲数量为0,则产生无穷多个脉冲。[D·]指定脉冲输出元件号。脉冲以中断方式输出,占空比为50%。
若在执行过程中,X10变为OFF,则停止脉冲输出,Y0也变为OFF。当X10再次为ON时,重新执行指令。本指令在程序中只能使用一次,且只能用于晶体管输出型PLC。
9.脉宽调制PWM
PWM指令格式如下:
如图2-72所示,[S1·]指定脉冲宽度:1~32767ms。[S2·]指定周期:1~32767ms。[D·]指定脉冲输出的元件号。脉冲以中断方式输出。当D10的值为0~50时,Y0输出脉冲的占空比为0~100%。当X10为OFF时,Y0也为OFF。本指令只能使用一次,且只能用于晶体管输出型PLC。
图2-71 PLSY指令的使用说明
图2-72 PWM指令的使用说明
(七)方便指令FNC60~FNC69
1.置初始状态IST
IST指令格式如下:
参见本章第三节。
2.数据检索SER
SER指令格式如下:
[S1·]指定数据表首元素存放元件;[S2·]指定查找的关键字;[D·]指定结果存放处;n为数据表长度。执行结果生成统计表,例如:的执行结果存放在D35~D39中,依次存放:
数据表中查找到的关键字的个数(未找到为0)。
第一个找到的关键字在数据表中的位置(未找到为0)。
最后一个找到的关键字在数据表中的位置(未找到为0)。
数据表中的最小元素在表中的位置。
数据表中的最大元素在表中的位置。
3.绝对值凸轮顺控ABSD
ABSD指令格式如下:
根据计数器[S2·]的当前值,由目标元件[D·](数目为n)输出波形。例如:
先将对应数据写入D300~D307中作为数据表,开通点数据写入偶数元件,关断点数据写入奇数元件,见表2-14。
表2-14 开通、关断点
图2-73 M0~M3的状态变化
当X0由OFF变为ON时,PLC将计数器C0的当前值与数据表的数值相比较,决定目标元件M0~M3的输出波形,如图2-73所示。重写D300~D307的数据,可以改变各个开通点和关断点。若X0=OFF,输出点的状态保持不变。本指令只能使用一次。
4.增量凸轮顺控INCD
INCD指令格式如下:
先将数据20、30、10、40写入[S1·]元件,例如D300=20,D301=30,D302=10,D303=40。INCD指令则根据计数器C0的值控制M0~M3(n=4)的输出,执行过程如图2-74所示。当计数器C0的当前值依次达到D300~D303的设定值时自动复位。过程计数器C1计算复位次数。M0~M3按C1的值依次动作。当由n值指定的最后一个过程完成后,置位M8029,以后周期性重复。若X0关断,C0和C1都复位,同时M0~M3关断。当X0再次接通后重新开始运行。本指令只能使用一次。
5.示教定时器TTMR
(略)
6.特殊定时器STMR
(略)
7.交替输出ALT
(略)
8.斜坡信号输出RAMP
(略)
9.旋转台控制ROTC
(略)
(八)外部I/O设备指令FNC70~FNC79
1.10键输入TKY
TKY指令格式如下:
图2-74 INCD指令的执行过程
利用10个键为PLC输入十进制数,输入键与PLC的连接如图2-75所示。
图2-75 10输入键与PLC的连接
由[S·]指定输入元件,[D1·]指定存贮元件,[D2·]指定读出元件。如图2-76所示,按键顺序若为(a)、(b)、(c)、(d),则D0中的数据为2130。数据是以BCD码形式存于D0的。如果输入数据大于9999,则高位溢出并丢失。如果使用32位指令,D0、D1组对使用,数据大于99999999溢出。
当X2按下后,M12置1并保持到另一键按下。其他键也一样。M10~M19的动作对应于X0~X11。任一键按下,键信号M20置1直到该键放开。若多个键按下,首先按下的键有效。当X30变为OFF时,D0中的数据保持不变,但M10~M20全部变为OFF。
本指令只能使用一次。
2.16键输入HKY
HKY指令格式如下:
实现16个键(10个数字键,6个功能键)的输入,输入键与PLC的连接如图2-77所示。[S·]指定4个输入元件,[D1·]指定4个扫描输出元件,[D2·]指定键输入的存储元件,[D3·]指定读出元件。
图2-76 TKY指令的使用说明
图2-77 16输入键与PLC的连接
(1)数字键。与TKY类似。
(2)功能键。功能键A~F依次对应M0~M5,按下一个功能键后,相应的M置1,其余5个为0。
(3)键扫描输出。按下的任何一个键被扫描到后标志M8029置1。功能键A~F的任一个按下时,M6置1(不保持);数字键0~9的任一个按下时,M7置1(不保持)。当X4变为OFF时,D0保持不变,M0~M7全部为OFF。扫描全部16个键需要8个扫描周期。
本指令只能使用一次。
3.数字开关DSW
DSW指令格式如下:
图2-78 BCD码数字开关与PLC的连接
接线图如图2-78所示。
指令使用说明如图2-79所示,[S·]指定输入元件,[D1·]指定选通元件,[D2·]指定存储元件,n指定组数。若n=1,为一组(4位)数字开关,接到X10~X13,由Y10~Y13顺次选通读入,数据以BIN码形式存入D0中;若n=2,为两组(8位)数字开关,第二组数字开关接到X14~X17,由Y10~Y13顺次选通读入,数据以BIN码形式存入D1中。
当X0保持为ON时,Y10~Y13顺次为ON,一个周期完成后标志位M8029置1。
图2-79 DSW指令的使用说明
本指令只能使用一次。
4.7段解码SEGD
SEGD指令格式如下:
D0的低4位所表示的十六进制数(0~F)经过解码后,驱动7段显示器。解码表见表2-15。
表2-15 SEGD指令的解码表
5.带锁存的7段显示SEGL
SEGL指令格式如下:
图2-80 7段显示器与PLC的连接
用于控制一组或两组带锁存、译码的7段显示器,与PLC的连接如图2-80所示。SEGL用12个扫描周期显示4位数据,完成显示后标志M8029置1。当X0=ON时,SEGL反复执行;当X0变为OFF时,停止执行。若X0再次为ON,则从头开始反复执行。一组显示:要显示的数据(BIN码)放在D0,然后转换为BCD码(0~9999),顺次送到Y0~Y3。选通信号用Y4~Y7。两组显示:要显示的数据放在D0、D1,转换为BCD码后,D0的数据送到Y0~Y3,D1的数据送到Y10~Y13。选通信号也用Y4~Y7。
本指令只能使用一次。
参数n的选择与PLC的逻辑性质、7段显示逻辑以及显示组数有关。详见有关参考书。
6.方向开关ARWS
ARWS指令格式如下:
图2-81 方向开关
图2-82 显示器与PLC的连接示意图
ARWS用于方向开关输入、显示位数及增减数据的控制。方向开关有4个,如图2-81所示。位左移、位右移键用来改变要输入的位,增加(增1)、减少(减1)键用来设定指定位的数据。7段显示器显示当前的输入数据,其连接如图2-82所示。当X0由OFF→ON时,指定的是103位,每按一次右移键,指定位按103→102→101→100→103顺序移动;若按左移键,则指定位按103→100→101→102→103顺序移动。通过接到Y4~Y7上的LED发光二极管显示指定位。ARWS指令可将需要的数据写入D0,并可利用显示器监视所写入的数据。写入D0中的数据是16位二进制数,但为了方便,显示器以BCD码显示(0~9999)。参数n的选择与SEGL指令相同。
本指令只能使用一次,且必须使用于晶体管输出型PLC。
7.ASCII码变换ASC
ASC指令格式如下:
本指令是将[S·]指定的字符串转换成ASCII码并依次存入[D·](先低8位,后高8位),例如执行下面指令后,D300=H5846,D301=H362D,D302=H4D34,D303=H2152。
8.打印PR
PR指令格式如下:
本指令用于ASCII码打印输出,常与ASC指令配合使用。若D300~D303中分别存放了字符串‘ABCDEFGH’的ASCII码值,PR指令的使用说明及执行过程如图2-83所示,输出A~H的ASCII码数据到输出端Y0~Y7,选通信号Y10和执行标志Y11也动作。
图2-83 PR指令的使用说明
在指令执行过程中,若X0变为OFF,送数操作停止。当X0再次为ON时,开始从头送数。本指令只能使用一次,且要使用晶体管输出型PLC。
9.读特殊功能模块FROM
FROM指令格式如下:
读编号为m1的特殊功能模块,把缓冲寄存器(BFM)号为m2开始的n个数据读入基本单元,存入由[D·]指定的n个数据寄存器中。
m1:特殊功能模块地址编号。特殊功能模块(如模拟量输入单元、模拟量输出单元、高速计数器等)连接在FX2基本单元右边的扩展总线上,并从最靠近基本单元的模块开始顺次编号0~7,如图2-84所示。
图2-84 特殊功能模块连接编号
m2:特殊功能模块的缓冲寄存器首元件号。
n:待传送数据的字数,16位操作时n=1~32,32位操作时n=1~16。当X10为ON时执行,将2号特殊功能模块内10号缓冲寄存器开始的6个数据读到基本单元,存入D10~D15中。
10.写特殊功能模块TO
TO指令格式如下:
与指令FROM的数据传送方向相反,将基本单元中从[S·]元件开始的n个数据写入地址编号为m1的特殊功能模块中首地址从m2开始的缓冲存储区中。m1、m2和n的取值范围同FROM。例如:
需要使用FROM、TO指令的特殊功能模块,每个模块占8个I/O点,可计入I/O点,但不影响普通I/O点的编号顺序,如图2-85所示,I/O总计为80点。
图2-85 特殊功能模块I/O点编号
(九)FX系列外围设备指令FNC80~FNC89
1.串行通信RS
RS指令格式如下:
对通信适配器FX-232ADP进行控制。前两个参数表示发送数据区的首址和长度,后两个参数表示接收数据区的首址和长度。
本指令包含以下自动定义的软元件:
D8120——存放通信参数,如数据位数、波特率等。
D8122——存放当前发送的信息中尚未发出的字节数。
D8123——存放接收信息中已收到的字节数。
D8124——存放起始字符串的ASCII码值,缺省值是H02,即STX。
D8125——存放结束字符串的ASCII码值,缺省值是H03,即ETX。
M8121——该标志为ON时表示传送被延迟,直到目前的接收操作完成。
M8122——该标志置为ON,触发数据发送。
M8123——该标志置为ON时,表示一条信息已被完整接收。
M8124——载波检测标志。
M8161——该标志为ON时表示8位操作模式,在各个源、目标元件中只有低8位才有用,即在每个数据寄存器中只有1个ASCII码字符;该标志为OFF时表示16位操作模式,在各个源、目标元件中全部16位都有用,即在每个数据寄存器中存放2个ASCII码字符。
通信参数的设置由数据寄存器D8120来完成,见表2-16。
表2-16 通信参数D8120设置
数据通信之前必须用RS指令设置数据区,并设置通信方式。例如,下面程序定义波特率为9600bps,1位停止位,无校验,7位数据。RS指令设置发送数据区首址为D350,长度为3,接收数据区首址为D200,长度为30。
下面的指令是将D300~D302中的数据发送出去。
下面的指令是接收数据,并转移到D600~D629中。
2.并联运行PRUN
PRUN指令格式如下:
3.ASCII码变换ASCI
ASCI指令格式如下:
4.十六进制转换HEX
HEX指令格式如下:
5.校验码CCD
CCD指令格式如下:
6.读变量VRRD
VRRD指令格式如下:
7.变量整标VRSC
VRSC指令格式如下:
8.比例积分微分控制PID
PID指令格式如下:
[S1]存放置位值。[S2]存放当前值。[S3]是用户为PID指令定义参数的首址,范围是D0~D975。[D]存放输出值。
当M10从OFF变为ON时,执行指令。置位值存入D10,当前值从D40中读出,保留D100~D124作为用户定义参数的寄存器,输出值存入D50。
一个程序中可以使用多条PID指令,但每条指令的数据寄存器都要独立,以避免混乱。
PID指令有报警系统,可由用户自己定义的参数设置触点。
PID指令的出错信息存放在D8067中。
PID指令可以用中断、子程序、步进梯形指令和条件跳转指令,但使用时要小心。
采样时间必须大于程序扫描时间。
(十)F2外部模块指令FNC90~FNC99
1.MELSECNET/MINI网MNET
MNET指令格式如下:
MNET指令用于FX2系列PLC与F-16NP/NT接口模块之间进行ON/OFF信号的通信。I/O的首元件号由FX2-24EI特殊模块的连接位置决定。
2.模拟量读ANRD
ANRD指令格式如下:
ANRD指令用于从F2-6A模拟量输入/输出单元中将输入数据读入PLC。n代表模拟量通道号,[S]和[D1]取决于FX2-24EI的连接位置。例如,下面指令读取10号通道的模拟量输入并存入D300中。
3.模拟量写ANWR
ANWR指令格式如下:
ANRD指令用于将FX系列PLC中的数据写入F2-6A,然后在输出通道以模拟量形式输出。n代表模拟输出通道号,[S2]和[D]取决于FX2-24EI的连接位置。例如,下面指令将D310中的数据输出到模拟量输出通道0:
4.F2-32RM启动运行RmsT
(略)
5.F2-32RM单元写RMWR
(略)
6.F2-32RM单元读RMRD
(略)
7.F2-32RM监控RMMN
(略)
8.F2-30GM程序块设定BLK
(略)
9.F2-30GM机器码读出MCDE
(略)
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。