[汇川] 小型PLC系列教程之3.2使用D元件保存数据

[复制链接]
查看115 | 回复0 | 2024-11-14 07:25:08 | 显示全部楼层 |阅读模式
>

1.D元件简介

前面一章节写过了,复制过来……

D元件就是数据寄存器,一个D元件能装下16位的数据。我们小型PLC中数值都是带符号的。所以1个D元件表示的数据范围就是:-2^15 到 2^15 -1也就是-32768到32767,超过这个范围的一个D元件就装不下了。

数据类型说明数据范围
16位整型占1个D元件-2^15-2^15-1
32位整型占2个D元件-2^31-2^31-1
32位浮点型占2个D元件范围很大,有兴趣自行百度……

若采用32bit 指令,则自动将相邻的2 个寄存器组成为32bit 寄存器使用,地址较低的为低字节,而地址较高的为高字节。例如将100000放到D200数据寄存器中,实际上数据存放在D200,D201中,其中D200为低,D201为高。

低位可用奇数或偶数的任意一种软元件编号指定,考虑到外围设备的监视功能,建议低位采用偶数软元件编号。

H3U的:

一般我们只常用D元件进行项目编程,当D元件不够用的时候,可以考虑使用R元件(和D用法一模一样)。变址寄存器我目前项目中从来都没用到过,到目前为止我做的项目中D元件数量没用到超过50%的,所以一般情况下D元件是够用的。

SD元件为特殊寄存器(特殊情况用),见《H3U系列可编程逻辑控制器指令及编程手册》P677页,简单看一下即可……

不同型号寄存器数量是有区别的,具体请查阅用户手册

通过参数可设置掉电保持范围(PS我也没找到哪个参数设置……)一般情况默认即可,对于H2U和H3U默认就是D0-D511都是掉电保持的。

1.注:具有CANlink3.0功能的H1U-XP(26128版本及以上)和H2U-XP(24137版本及以上)以及H3U,因该功能占用D7000-D7999的D元件,D7000-D7999不允许用户使用!

2.以下所有软元件其接点信号(常开型、常闭型,上升沿,下降沿)在用户程序中都可无限次使用。

2.最常用MOV赋值指令简介(必用)

MOV指令是“传送指令”,也可理解成“赋值指令”。MOV  A  B,意思就是把十六位整型数据A的值赋值给B(把A的值复制给B),类似于C语言中的 “ = ”或者ST文本中的“ := ”。

2.1 十六位整型赋值指令MOV

H123U/H123S/H5U通用指令

32位整型赋值指令为DMOV,其 DMOV S D,指令中的 数据源和目的地寄存器 范围一致,可以是D,R,SD,KnX,KnY,KnM,T,C……如上图箭头所示

2.2 三十二位浮点赋值传送指令DEMOV


32位浮点型传送指令是DEMOV,注:带灰色底纹软元件,表示可支持。

数据类型指令使用说明
十六位整型数据MOVMOV K20 D100把十进制数据20赋值给D100数据寄存器(占1个D元件)
32位整型数据DMOVDMOV K100 D102把十进制数据100赋值给D102,占2个D元件(低16位D102,高16位103)
32位浮点型数据DEMOVDEMOV E200.0 D104把浮点数200.0赋值给D104寄存器(占2个D元件)

2.3 常用数据进制标识前缀

数据位数标识说明
十进制K放在数字前面,代表后面的数值十进制
十六进制H放在数字前面,代表后面的数值是十六进制
浮点数E放在数字前面,代表后面的数值是浮点数

3.其他实用传送指令(用的较少,偶尔用)

3.1批传送BMOV(手册P166)

3.2数据一对多传送FMOV(手册P167)


更多详细传送指令知识,请参考《H3U系列可编程逻辑控制器指令及编程手册》P163

4.使用D元件保存数据### 4.1保存整型、浮点型到D寄存器【见例程网络1】

十进制数据用K开头,十六进制数据用H开头,浮点型数据用E开头。关于进制相关信息,请参考第二章节
H300124,为十六进制数据,使用win7自带的计数器,转换成十进制为K3146020。


MOV : 16位整型数据传送指令(16位整数赋值指令)
DMOV :32位整型数据传送指令(32位整数赋值指令)
DEMOV:32位浮点型数据传送指令(32位浮点型数据赋值指令)


M8000代表着小型PLC系统底层程序初始化完毕,系统运行正常标志。这里是将放在D元件里的值,赋值到另一个D元件。需要注意的是“目的D元件”与“源D元件”的数据类型应当是一致的,不然可能会在后续的程序运行中导致程序出错。

4.2将位元件状态传送到D寄存器


MOV K4M0 D30,意思是从M0开始到M15为止,总共16个M位元件,组成一个16位整型数据赋值给M30。

K1M0,代表的就是M0,M1,M2,M3
K2M0,代表的就是M0,M1,M2,M3,M4,M5,M6,M7组成的数据
K3M0,代表的就是M0,M1,M2,M3,M4,M5,M6,M7……,M10,M11组成的数据
K4M0,代表的就是M0,M1,M2,M3……M14,M15组成的数据
……
K7M0,代表的就是M0……M31组成 的数据。

这里需要注意的是小型PLC中1个D元件代表的是16位有符号整型数据,最高位也就是bit15代表的是符号位。2个D元件,32位数据的bit31代表的是符号位。

D30对应的数据是K16424,转换成二进制数据为:100000000101000,对应的bit3,bit5,bit14均为1即为程序set M3,SET M5,SET M14

MOV指令为16位整型数据赋值,DMOV为32位整型数据赋值。对于位操作而言,不存在将位数据转换到浮点数中。

〔MOV D10 K4M80〕另外还支持逆操作,可以将16位D元件内的数据转换到M位元件中

4.3定时器、计数器赋值到D寄存器


这种用法很少用,一般项目中都不使用。。仅告诉大家有此用法

4.4批传送与1对多传送案例


用的比较少,仅做了解,获取更多知识,请参考手册


5.练习题

1.汇川小型PLC中1个D元件保存的数值范围是多少?
2.16位数据的占几个D元件,范围是多少?
3.浮点数占几个D元件?
4.将K40000,保存到D200寄存器,用哪个指令?占几个D元件,其范围是多少?
5.DMOV H16 D20,D20中保存的数据换成十进制后是多少?


点击“阅读原文”,可以点击在看,分享给朋友



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则