前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >三菱FX系列PLC的变址寄存器

三菱FX系列PLC的变址寄存器

作者头像
剑指工控
发布2021-11-09 16:22:06
6.1K0
发布2021-11-09 16:22:06
举报
文章被收录于专栏:剑指工控

三菱FX系列PLC中有可以改变地址的变址寄存器,V和Z,在编程过程中可以通过变址寄存器改变要应用的地址,下面对变址寄存器及应用做下简单介绍。

变址寄存器是除了可与数据寄存器的使用方法相同以外,还可以通过在应用指令的操作数中组合使用其他的软元件编号和数值,从而在程序中更改软元件的编号和数值内容的特殊寄存器。在寄存器中,被称为变址(修饰)用的有V、Z两种寄存器。

FX1S和FXIN有两个变址寄存器V和Z,FX2N 和FX2NC 及FX3G、FX3U有16个变址寄存器V0~V7和Z0~Z7, 1、 变址寄存器的编号 变址寄存器[V、Z]的编号如下表所示。(编号以10进制数分配) 仅仅指定变址寄存器V或是Z的时候,分别作为V0、Z0处理。

1*. 关于停电保持的特性可以通过参数进行变更。

2、 功能和构造 2.1. 16位 变址寄存器具有和数据寄存器相同的结构。

2.2. 32位 在使用32位的应用指令中的软元件时,或者及处理超出16位范围的数值时必须使用Z0~Z7。将软元件号相同的V、Z(例如V2、Z2)合并使用,Z为低位,如图:

如图所示的V、Z组合,由于FX可编程控制器将Z侧作为32位寄存器的低位侧动作,所以即使指定了高位侧的V0~V7也不会执行修饰。

此外,作为32位指定时,会同时参考V(高位)、Z(低位),因此一旦V(高位)侧中留存有别的用途中的数值时,会变成相当大的数值,从而出现运算错误。

即使32位应用指令中使用的变址值没有超出16位数值范围,也请按照上图所示在对Z进行数值的写入时,使用DMOV指令等的32位运算指令,同时改写V(高位)、Z(低位)。

3、 软元件的修饰

可以被修饰的软元件,其修饰的内容如下所示: 10进制数软元件·数值: M、S、T、C、D、R、KnM、KnS、P、K 例如,V0=K8,执行D6V0时,对软元件编号为D14(D6+8)的执行指令。 此外,还可以修饰常数,指定K30V0时,被执行指令的是作为10进制的数值K38(30+8)。 8进制数软元件: X、Y、KnX、KnY 例如,Z1=K9,执行X0Z1时,对软元件编号为X11(X0+9: 8进制数加法)的执行指令。 注:对软元件编号为8进制数的软元件进行变址修饰时,V、Z的内容也会被换算成8进制数后进行加法运算。 因此,假定Z1=K10,Y0Z1被指定为Y12,请务必注意此时不是Y10。 16进制数值: H 例如,V5=K30,指定常数H30V5时,被视为H4E(30H+K30)。此外,V5=H30,指定常数H30V5时,被视为H60(30H+30H)。

4、 变址修正

4.1.基本指令的变址修正

位软元件的情况 LD、LDI、AND、ANI、OR、ORI、OUT、SET、RST、PLS、PLF指令中使用的位软元件[X、Y、M(特殊辅助继电器除外)]、T、C(0~199)]都可以进行变址修饰。 下面举在变址寄存器Z(0)中,对LD指令的X000和M0进行修正的例子来说明动作。

将K5或K10事先传送到变址寄存器Z(0)中。 当Z(0)=5时,如果[X(0+5)=X005]后X005为ON,则输出(ON)Y000、如果[M(0+5)= M5]后X5为ON,则输出(ON)Y001。 此外,当Z(0)=10时,如果[X(0+10)=X012*1]后X012*1为ON,则输出(ON)Y000。如果[M(0+10)=M10]后M10为ON,则输出(ON)Y001。

在进行修饰的变址寄存器中,可以使用Z0~Z7、V0~V7。 对于定时器、计数器的 OUT 指令,可以修正定时器编号、计数器编号和设定值中指定的软元件。 注意: 1) 32位计数器和特殊辅助继电器不能进行变址修正。 2) 16位计数器进行变址修饰后,不能作为32位的计数器处理。 3) 变址修正X、Y的8进制数软元件编号的时候,对软元件编号进行变址修正的内容以8进制数换算进行加法运算。例如,在输入X000 上附加的变址修正值呈K0,K8,K16 变化的情况下,输入X000 也会按照[X(000+0)=X000]、[X(000+8)=X10]、[X(000+16)=X20]和8进制数换算后,对软元件编号进行加法运算后改变。

字软元件、常数的情况

变址修饰在OUT指令中使用的字软元件[T,C(0~199)]的设定值。 下面例举在变址寄存器V2中,修饰OUT指令TO的设定值D0的例子进行说明。(如图)

将K0或K10事先传送到变址寄存器V1中。 X001为ON,V1=0的时候,如果[D(0+0)=D0],设定值为D0,则T0动作。 此外,V1=10的时候,如果[D(0+10)=D10],设定值为D10,则T0动作。 注意: 1) OUT指令为32位计数器的时候,不能变址修正设定值。

4.2. 应用指令的变址修饰

变址修饰应用指令的标明方法 在应用指令说明中,可以进行变址修饰的操作数的表示方法如下图所示,通过在源操作数 或是目标操作数符号 中加上[·],以此和不带修饰功能的操作数进行区别。

位软元件的情况 用变址寄存器V1对CMP(FNC 10)的比较结果进行修饰,以此为例说明。(见图)

V1=0 V1=10 D0>D1 , M0=ON M10=ON D0=D1 , M1=ON M11=ON D0<D1 , M2=ON M12=ON

当X02为ON,V1=0的时候,则[M(0+0)=M0],比较结果输出到M0~M2中。 此外,V1=10时,则[M(0+10)=M10],比较结果输出到M10~M12中。 注:在进行修饰的变址寄存器中,可以使用Z0~Z7、V0~V7。

字软元件的情况 1). 16位指令的操作数修饰 用变址寄存器V3中对MOV指令的传送目标D0进行修饰,以此为例说明。

V3=0时,K500传到D0 V3=10时,K500传到D10 将K0或K10事先传送到变址寄存器V3中。 X003为ON,V3=0时,则[D(0+0)=D0],将K500传送至D0中。 此外,当V3=10时,则[D(0+10)=D10],将K500传送至D10中。 2). 32位指令的操作数修饰 32位指令的场合,指令中使用的变址寄存器也需要以32 位进行指定。在32位指令中指定变址寄存器为Z侧(Z0~Z7)后,即包含了与Z侧成组的V侧(V0~V7),一起作为32位寄存器运行。 用变址寄存器[V4,Z4]修饰DMOV指令的传送目标[D1,D0]以此为例说明。

V4Z4=0时, K69000传到D0D1 V4Z4=10时,K69000传到D10D11

将K0或K10预先传送到变址寄存器[V4,Z4]中。 X005为ON,[V4,Z4]=0时,则[D(1+0),D(0+0)]=[D1,D0],将K69000传送至[D1,D0]中。 此外,[V4,Z4]=10时,则[D(1+10),D(0+10)]=[D11,D10],将K69000传送至[D11,D10]中。 注意: 1) 即使写入变址寄存器的数值没有超出16位的数值范围(0~32767),也必须使用32位指令对V、Z都进行改 写。如仅仅改写了Z侧,V侧中会存有其他的数值,从而变成相当大的数值,出现运算错误。 2) 对16位计数器变址修饰后,不可以作为32位的计数器使用。 如果变址修饰的结果需要是32位计数器的情况下,请对计数器C200以后的计数器加Z0~Z7。 3) 变址寄存器 不能对V、Z本身进行变址修饰。 4) 特殊功能模块/单元的缓冲存储区的直接指定 缓冲存储区的直接指定U□\G□其缓冲存储区的编号可以被变址修饰。 模块号不能被变址修饰。(U0\G0Z0有效,U0Z0\G0不可) 5) 位数指定的变址修饰 指定位数用的中Kn的“n”不能进行变址修饰。(K4M0Z0有效、K0Z0M0不可) 6) 输入输出继电器(8进制软元件编号)的变址修饰 对X、Y、KnX、KnY的8进制软元件编号进行变址修饰时,对软元件编号进行变址修饰的的变址寄存器内容会被换算成8进制数后再进行加法运算。

应用举例:

1、在图中的例子中,使用MOV指令输出Y007~Y000,通过变址修饰后可以将该输入切换成X007~X000、X017~X010、X027~X020。 通过将变址值改写成K0、K8、K16,[X000+0=X000]、[X000+8=X10]、[X000+16=X20]在8进制数换算后,再加在软元件编号上,使作为源操作数的输入端子改变。

V3=0时,X7 ~ X 0 → Y7~Y0 V3=8时,X17~X10 → Y7~Y0 V3=16时,X27~X20 → Y7~Y0

2、定时器当前值的显示示例 可以使用变址寄存器编写显示定时器T0~T9当前值用的顺控程序。

对应Z0=0~9,则T0Z0=T0~T 9。

3、常数的情况 用变址寄存器V6修饰MOV指令的发送源,以此为例说明。

V6=0, K8(8+0) → D20 V6=20, K28(8+20) → D20

将K0或K20事先传送到变址寄存器V6中。 X005为ON,V6=0时,则[K(8+0)=K8],将K8传送至D10中。 此外,V6=20时,则[K(8+20)=K28],将K28传送至D10中。 4、使用次数受限制的指令的变址修饰实例

如果用变址寄存器V、Z修饰对象软元件的编号,那么可通过程序改变对象软元件的编号。如果对有使用次数限制的指令使用这一功能的话,则可

以得到与多次使用该指令编程相同的效果。

使用TKY指令(FNC 70)的修饰实例

将2组0~9为止的键(数字键)输入的输入数据保存到D0、D2中。 TKY指令(FNC 70)是在程序中只能使用一次的指令,但是通过对输入数据的起始软元件编号、输入数据的保存软元件编号、使按键信息为ON的起始软元件编号进行修饰,可输入2组0~9的键(数字键)输入。 此外,在该指令执行过程中,即使改变V,切换也无效。如果要想使该变更有效,请使指令的驱动OFF一次。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 剑指工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档