关于S7的数据问题

不好意思,我对这个还不明白,望高人指点。
 主要是2进制。10进制。BCD码。还有16进制。希望高人说的明白点。还有关于他们的运用。他们主要用在什么地方。还有就是他们和字节,字,双字,什么的有关系吗?谢谢。

问题补充:
看了书还是不明白郁闷,谢谢下面飞狐大哥的解释.我还是有点不明白.比如我想表示2,这是我们通常用的是进制.那如果我用2进制表示是不是2#0010 .如果我用BCD码表示就是W#16#2还是W#16#0002. 还有就是你说的BCD码就是16进制.可是我看加减记数器上面为什么又写BCD,又写16进制? 
 最后还想文下这些和位  字 双字 整数 什么的有关系吗? 说的也明白也好,我看书看的不清楚.

最佳答案

二进制、十六进制和十进制:
 二进制和二进制数: 所有通过S7-200 PLC处理的数据(数值、字符等等)都以二进制形式表示。在S7-200中,特别指出一个数据是二进制数并没有什么意义。
 十六进制和十六进制数:在二进制数中,每4个二进制位可以分为一组;这组二进制数值的不同变化可以表示16个状态,正好是16进制数每一位数字的变化范围。因此,可以用十六进制数值方便地表示二进制数。
 例如,二进制数1000_1111b分为两组来看,分别是1000b和1111b,正好可以表示16进制数字8h和Fh(0000b对应于0h,…,1111b对应于Fh);那么这个二进制数就可以表示为8Fh。
 十进制和十进制数:十进制是S7-200的数学计算的基础,在S7-200中,一般都使用十进制的体系,除了时间(12/24或60进制)等特殊数据外。
  二进制数用于在PLC中表示十进制数值、或者其他(如字符等)数据,而16进制用来比较简单地描述二进制数。
  在S7-200中,二进制立即数表示为2#xxxx_xxxx(1字节长度),16进制立即数表示为16#xx(1字节长度)。
 二进制位逻辑(bit)
 字节、字、双字都可以用来表示十进制整数,显然它们的数据长度不同,能够表示的数的大小范围也不同。

 无符号整数只有0和正整数;有符号整数可以有正数和负数。

 有符号整数采用二进制补码的形式来表示负数。

 在S7-200中,字节、字、双字都可以按照无符号、有符号整数来查看 
 Micro/WIN中,整数运算指令在指令树的Integer Math分支中 
 只有字节运算指令(带B符号的指令,如INC_B等)是无符号整数运算指令 
 凡带有I,或W,DW等(除字节B指令外)的数学运算指令,都是有符号整数运算指令 
 定时器、计数器的值都是有符号整数 
 HSC(高速计数器)的计数当前值(HCx)和设定值都是32位的有符号整数 
 在编程软件Micro/WIN中输入立即数据时,如果不输入小数点,则认作整数 
 在不需要高精度运算的条件下,使用整数可以简化编程,节省处理时间
 BCD
 BCD意为“二进制编码的十进制数”。BCD是一种编码方式,是以二进制数对十进制数字的编码,并因为16进制的优势,改用十六进制数字表示。
 十进制只有十个数字,所以以16进制表示的BCD码不会出现16进制数字Ah – Fh。
 十进制数39用BCD码表示就是39h,或16#39。BCD码数值必须用16进制查看才能得到正确结果。
 BCD编码往往在使用BCD编码开关输入数据时用到;S7-200中读出的时钟日期数据也是以BCD编码表示。
 S7-200支持的数据格式
 BOOL(位) 1(位) 布尔数(二进制位)真(1);假(0);
 BYTE(字节)8(字节) 无符号整数 0 ~ 255;0 ~ FF(Hex);
 INT(整数)16(字)有符号整数 – 32768 ~ 32767;8000 ~ 7FFF(Hex);
 WORD(字)16(字)无符号整数 0 ~ 65535;0 ~ FFFF(Hex);
 DINT(双整数)32(双字)有符号整数 – 2147483648 ~ 2147483647      8000 0000 ~ 7FFF FFFF(Hex);
 DWORD(双字)32(双字)无符号整数0 ~ 4294967295;
 0 ~ FFFF FFFF(Hex);
 REAL(实数)32(双字)IEEE 32位单精度浮点数
   -3.402823E+38 ~ -1.175495E-38(负数);
 +1.175495E-38 ~+3.402823E+38(正数); 0.0
 ASCII  8/个(字节)字符列表 ASCII字符、汉字内码(每个汉字2字节);
 STRING(字符串)8/个(字节)字符串 1 ~ 254个ASCII字符、
 汉字内码(每个汉字2字节);

提问者对于答案的评价:
哈哈

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc357129.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

  • 译码指令和编码指令等—郁闷啊

    DECO指令中,送一个10进去,出来的是1024,为什么是1024呢? ENCO指令中,送一个2#1000,为什么出来的是2#11呢? 这两个指令是怎样理解的呢…

    SIMATIC S7-200 2021年7月5日
  • s7200 226cnPLC

    s7200 226cncpu出现如下报警错误,关了再开有可以,请教高手是怎么回事呀?由于PLC正在上载/下载,处于致命错误状态或缺失硬件而无法处理此命令,如果在版本REL…

    SIMATIC S7-200 2017年10月29日
  • 自由口通讯问题例

    可否举个简单例子关于自由口通讯: 采用自由口通讯,采集一块温控表的温度,及相应的控制 问题补充:是否可附带说明,十分感谢 最佳答案 这里有两个非常好的实例,可供你学习——…

    SIMATIC S7-200 2021年7月5日
  • 被简单程序难倒了,求教

    一、控制要求:1、按下启动按钮,小车启动运行(1、若小车停在左限位,则启动后向右运动;2、若小车停在右限位,则启动后向左运动;3、若小车停在左限位和右限位之间,则启动后向右运动;)…

    2017年5月31日
  • 关于打印通讯的问题?

    有哪位高手可以告之小弟,在西门子PLCS7-200(CPU226)中,是怎样与微打进行通讯连接的.在梯形图中怎样设计(是用什么命令)?怎样设置打印内容?小弟在此不盛感激!(可以设计…

    SIMATIC S7-200 2021年7月5日
  • S7-224XP模拟量输入的问题

    如果我给S7-224XP自带的输入端子M、A+一个0—10V的电压信号,那这个模拟量输入是AIW0还是AIW2呢? 最佳答案 1、CPU 224 XP本体上的模…

    SIMATIC S7-200 2020年10月31日
  • 怎么知道伺服当前的运行状态

    我们编程的时候都是一步步的来,可是我们用位置编程控制伺服的时候伺服电机命令POSO-GOTO都是一个上升沿触发START电机就按预定的轨道走了。但是我怎么知道他结束了该步,之后能进…

    SIMATIC S7-200 2020年11月1日
  • 对VW地址的计算

    我VW的需要的数据范围为:0~50000, 但是如果运算后,自动变成“整数”了,范围是-32768到32767, 请教:不问如何做才能做到数据范围还是0~500…

    SIMATIC S7-200 2021年7月5日
  • 帮忙分析下数据接受处理程序

    以下为一段自由口通讯的数据接受处理程序,有些不明白的地方希望大家指点。下面为 RCV  VB100以后,在进行奇偶检验前的数据处理,最后调用FCS为校…

    SIMATIC S7-200 2021年7月5日
  • 如何让TD400C从CPU 224XP系统时钟读取的故障时间停止不动??急啊,在线等!

    问题的具体描述请看:http://www.ad.siemens.com.cn/club/bbs/post.asp?a_id=654100&pno=1&b_id=3&…

    SIMATIC S7-200 2021年7月4日

发表回复

登录后才能评论