西门子PLC300的比较指令

西门子PLC300的编程中 用实数的比较指令比较DBD1和450的大小
用梯形图
IN1上写DBD1
IN2上直接写450 但是450是红色的
是不是DBD1不能和实际的数相比啊???

  比较指令用于实现两个数大小的比较,并输出比较后的逻辑结果。若满足逻辑条件,则输出为1;若不满足,则输出为0。比较的数据包括整数、长整数或32位浮点数。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-14
你无法建立DBD1,因为西门子默认的W,D存储长度均为偶数地址,虽然你的程序或许会通过程序检测,但是你的运算结果会出现错误。

第二,如果你使用浮点数,请写450.0或者4.5E2的方式,因为450对于程序来说,它认为这是整数而非浮点数。本回答被提问者采纳
第2个回答  2019-11-03
1、fnc(cj)
跳转指令
2、fnc01
fnc02
fnc06(call
sret
fend)
调用子程序
3、fnc03
fnc04
fnc05(iret
ei
di)中断处理
4、fnc07(wdt)看门狗定时器
5、fnc08
fnc09(for
next)程序循环
数据传送、区域比较应用指令
1、fnc10(cmp)
比较
2、fnc11(zcp)区域比较
3、fnc12(mov)
传送应用指令
4、fnc13
(smov)数据移位应用指令
5、fnc14(cml)数据反相传送应用指令
6、fnc15
(bmov)
成批传送
7、fnc16
(fmov)
多点传送应用指令
8、fnc17
(xchp)
数据交换
9、fnc18(bcd)
将bin转换为bcd
10、fnc19(bin)
将bck转换为bin
四则运算逻辑应用指令
1、fnc20(add)
加法应用指令
2、fnc21(sub)
减法
3、fnc22(mul)
二进制乘法
4、fnc23(div)
二进制除法
5、fnc24(inc)
增加
6、fnc25(dec)
减少
7、fnc26(wand)
逻辑与
8、fnc27(wor)
逻辑或
9、fnc28(wxor)
二进制互斥逻辑异或
10、fnc29(neg)
求补码
旋转、位移应用指令
1、fnc30、fnc31(rorp、rolp)左、右旋转
2、fnc32
fnc33(rcrp、rclp)包含进位标识的左、右旋转
3、fnc34、fnc35(sftrp、sftlp)位数据左、右移
4、fnc36、fnc37(wsfrp、wsflp)字符数据左、右移
5、fnc38、fnc39(sfwrp、wfrdp)字符数据位移写入与读出
数据处理应用指令
1、fnc40(zrst)区域数据复位
2、fnc41(deco)译码
3、fnc42(enco)编码
4、fnc43(sum)on位总数计算
5、fnc44(bon)on位判断
6、fnc45(mean)平均值
7、fnc46、fnc47(ans、anr)警报线圈的输出与复位
8、fnc48(sqr)开平方
高速处理应用指令
1、fnc50(rer)输入/输出信号立即处理
2、fnc51(reff)改变输入端响应时间
3、fnc52(mtp)矩阵输入
4、fnc53(dhscs)高速计数器比较设置
5、fnc54(dhscr)高速计数器比较复位
6、fnc55(dhsz)高速计数器区域比较
7、fnc56(spd)脉冲密度
8、fnc57(plsy)脉冲输出
9、fnc58(pwm)脉冲宽度调制
10、fnc59(plsr)加减速脉冲输出
宏应用指令
1、fnc60(ist)步进运转状态设定
2、fnc61(ser)多笔数据比较
3、fnc62(absd)绝对式控制
4、fnc63(incd)相对式控制
5、fnc64(timr)调整式定时器
6、fnc65(stmr)
特殊定时器
7、fnc66(altp)交替信号
8、fnc67(ramp)求斜率
9、fnc69(sort)数据排序
外部设定显示应用指令
1、fnc70(tky)10个按钮输入
2、fnc71(hky)16个按钮键输入
3、fnc72(dsw)指拨开关
4、fnc73(segd)7段数码管译码
5、fnc74(segl)7段数码扫描
6、fnc75(arws)箭头开关外部设定调整
第3个回答  2020-11-11
1.比较指令概述
说明:根据用户选择的比较类型比较IN1和IN2:
== IN1等于IN2
<> IN1不等于IN2
> IN1大于IN2
< IN1小于IN2
>= IN1大于或等于IN2
<= IN1小于或等于IN2
如果比较结果为“真”,则函数的RLO为“1”。如果以串联方式使用比较单元,则使用“与”运算将其链接至梯级程序段的RLO;如果以并联方式使用该框,则使用“或”运算将其链接至梯级程序段的RLO。
以下是可供使用的比较指令:
·CMP ?I 整数比较
·CMP ?D 比较双精度整数
·CMP ?R 比较实数
2.CMP ?I 比较整数
符号:
CMP ?I 比较整数符号-西门子PLC

参数 数据类型 内存区域 说明
输入框 BOOL I、Q、M、L、D 上一逻辑运算结果
输入框 BOOL I、Q、M、L、D 比较的结果,仅在输入RLO=1时才进一步处理
IN1 INT I、Q、M、L、D或常数 要比较的第一个值
IN2 INT I、Q、M、L、D或常数 要比较的第二个值
说明:CMP ?I(整数比较)的使用方法与标准触点类似。它可位于任何可放置标准触点的位置。可根据用户选择的比较类型比较IN1和IN2。如果比较结果为“真”,则函数的RLO为“1”。如果以串联方式使用该框,则使用“与”运算将其链接至整个梯级程序段的RLO;如果以并联方式使用该框,则使用“或”运算将其链接至整个梯级程序段的RLO。

状态字:

BR CC 1 CC 0 OV OS OR STA RLO /FC
写: X X X 0 - 0 X X 1

实例:
CMP ?I 比较整数-梯形图编程实例
如果满足下列条件,则输出Q4.0置位:
·输入I0.0和I0.1的信号状态为“1”
·并且MW0>=MW2

西门子PLC300的比较指令
比较指令用于实现两个数大小的比较,并输出比较后的逻辑结果。若满足逻辑条件,则输出为1;若不满足,则输出为0。比较的数据包括整数、长整数或32位浮点数。

西门子300程序怎么对比两个是否一样
在PC上打开需要对比的PLC控制程序块并选择监视,可以检查出此PLC程序块与PC上的程序是否一致。如果发现两者不一致,可以在PLC编程界面中选择“比较在线\/离线伙伴”来执行程序比较。这种比较方式可以帮助用户确认程序在两个不同环境下的状态是否相同。当PLC运行时,其CPU会根据用户程序指令的存放顺序进行扫描执...

西门子PLC300的比较指令
3. 比较指令是实现数值大小比较的关键,它能够简化逻辑判断过程。使用该指令时,需要输入两个待比较的数据,以及一个用于存储比较结果的寄存器。4. 当比较操作满足设定条件时,比较结果输出为1,否则输出为0。这一逻辑结果可以用于后续的程序流程控制或作为其他操作的依据。5. 西门子PLC300支持比较的数据类...

S7300的比较指令都有哪些?
S7-300系列PLC的比较指令有以下几种:CPX:比较寄存器和立即数。将一个寄存器和一个立即数进行比较,如果两者相等,则将结果存放在累加器中。CPD:比较两个双字寄存器。将两个双字寄存器进行比较,如果两者相等,则将结果存放在累加器中。CPI:比较立即数和寄存器。将一个立即数和一个寄存器进行比较,如果...

西门子PLC300比较指令具体怎么应用,我怎么看着指令都一样呢
I:整数、D:双整型、R:实数 EQ: 等于 NE:不等于 GT:大于 LE:小于 GE:大于等于 LE:小于等于

西门子S7-300 cmp指令后面跟D\\I\\R有什么区别?如CMP<R CMP<I CMP<D三 ...
西门子S7-300的CMP指令根据其后跟的符号D, I, 或R,有着明确的用途区分。CMPR用于比较实数(浮点数)的大小,CMPI适用于整数的比较,而CMPD则针对双精度整数的比较。这三种指令在处理不同数据类型的数值比较时,表现出不同的精度和适用性。在S7-300的基本指令系统中,包括位逻辑、定时器和计数器的...

西门子PLC的比较指令怎么用?
比较指令就是比较两个数的大小,可以是两个整数,实数,双整,比较成立就输出高电平,不成立就是低电平,比如整数大于等于比较指令CMP_I如果IN1的值大于或等于IN2的值那这个比较器的输出端就是高电平。常用在,函数运算,或者计数器上,比如要求计数值大于某个数的时候让某个输出为高电平,那就可以用...

西门子300如何比较电脑程序和PLC中的程序是否一样
1、首先找到电脑上已经安装SIMATIC manager软件,双击桌面图标。2、新打开的软件是空白的,然后在页面中点击FILE下拉菜单的open按钮。3、接着在打开的open对话框中,找到并点击browse按钮。4、然后找到自己要打开的西门子300程序,选择后点击ok。5、程序打开如下图所示,就完成了。

西门子S7-300 cmp指令后面跟D\\I\\R有什么区别?如CMP<R CMP<I CMP<D三 ...
4.1.1 触点指令 (54)4.1.2 线圈指令 (56)4.1.3 逻辑堆栈指令 (58)4.1.4 程序案例 (60)4.2 定时器指令 (61)4.2.1 接通延时定时器(TON) (63)4.2.2 有记忆接通延时定时器(TONR) (64)4.2.3 断开延时定时器(TOF) (65)4.2.4 时间间隔定时器 (65)4.2....

S7-300 PLC如何进行日期比较 ?
可以用系统功能块SFC1"READ_CLK"(读取系统时钟),可以读取当前CPU系统时钟的日期和时间!把时间存储在数据块中,然后比较数值大小,记住,读出来的时间数据是BCD码

相似回答