>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 十六位整型赋值指令MOVH123U/H123S/H5U通用指令
32位整型赋值指令为DMOV,其 DMOV S D,指令中的 数据源和目的地寄存器 范围一致,可以是D,R,SD,KnX,KnY,KnM,T,C……如上图箭头所示 2.2 三十二位浮点赋值传送指令DEMOV 32位浮点型传送指令是DEMOV,注:带灰色底纹软元件,表示可支持。数据类型 | 指令 | 使用 | 说明 |
---|
十六位整型数据 | MOV | MOV K20 D100 | 把十进制数据20赋值给D100数据寄存器(占1个D元件) | 32位整型数据 | DMOV | DMOV K100 D102 | 把十进制数据100赋值给D102,占2个D元件(低16位D102,高16位103) | 32位浮点型数据 | DEMOV | DEMOV 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中保存的数据换成十进制后是多少?
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |