PLC内部是如何存储数据的

传送和接收数据类型好是不同会造成错误,我就想了解一下各个数据类型最PLC内是怎么以二进制码存储的,正数好像最高位是0,负数好像最高位是1,正数存储是它本身,负数是以它的补码形式(除符号位取反再加1)存在的,对不对啊?但是怎样以1和0组成的呢,请各位专家给我解答或发个资料链接什么的,先谢谢各位了。

最佳答案

STEP 7基本数据类型
  
 说明:
 (1)WORD(字)
 一个字为16位,以二进制编码表示一个数值时,将16位分为4组,每组4位,分别表示数值中的一个数字。如16进制的W#16#1234的位图如下所示:
  
 使用16进制表示数值时没有符号位,所以16进制表示的数不会有负值。
 以BCD码表示时带有符号位,和16进制表示方法一样,也把16位分别4组,每组4位分别表示一个BCD码数字,但每位不能超过9.如+123以BCD码表示时的位图如下所示:
  
 DWORD和WORD的表示方法相同,只不过位数为32位,分为8组,每组4位分别表示一个数字。
 (2)INT(整数)
 一个INT型数值包括16位,在存储器中占有一个字的存储空间。INT型即可以表示正数,也可以表示负数,最高位为符号位(0表示正数,1表示负数)。以二进制编码表示一个数值时,除符号位以外,将每一位信号的数值相加即可表示一个整数。如+34位图如下图所示:
  
 一个负数的表示方法则是在正数的基础上将所有的位信号取反再加1,如-34的位图如下图所示:
  
 DINT(双整数)和INT的表示方法相同,只不过是32位。
 (3)REAL(浮点数)
 一个浮点数为32位,占有2个字的存储空间。一个浮点数包括符号位(S),指数(e)和尾数(m),三者分别占有的位图如下所示:
  
 指数(e)和尾数(m)的取值见下表:
  
 REAL数据类型的值都可以表示成1.m×2(e-bias)的形式,其中1≤e≤254,bias=127,S=0时为正值,S=1时为负值。
 如12.25的表示方法如下:
 S=0;
 指数e=27+21=128+2=130;
 尾数m=2-1+2-5=0.5+0.03125=0.53125;
 浮点值=(1+m)×2(e-bias)=(1+0.53125)×2(130-127)=1.53125×8=12.25.
 浮点数12.25的位图表示如下:
  
 SIMENS PLC浮点数小数位数最多为6位,要避免两个相差大于107的浮点数运算,否则会出现不正常的结果,如10000000.0+1.0结果仍是10000000.0。
 (4)S5Time(SIMATIC时间)
 S5Time时间占有16位,时间格式为:S5T#XH_XM_XS_XMS,其中:H,M,S,MS分别是时,分,秒和毫秒。S5Time的时间数据以BCD码二进制编码的格式存储,例如时基为1S,时间值为127S的位图表示如下:
  
 时基为时间的最小变化率,其定义如下:
  
 BCD码时间的最大值为999,通过选择不同的时基可以改变定时时间的长度,如100MS时间的定时器最长可定时99900MS.在编写程序时,CPU会根据设定的时间值自动选择时基,如S5T#2M_30S,为150要,大于100MS时基的最大定时长度而小于1S时基的最大定时长度,时基自动选定为1S。
 (5)Time(IEC时间)
 Time时间格式占32位,格式为:T#XD_XH_XM_XS_XMS,其中:D,H,M,S和MS分别表示天,时,分,秒和毫秒。
 (6)DATE(IEC日期)
 DATE日期格式占有16位存储空间,格式为D#年_月_日。
 (7)Time_OF_DAY(时间)
 此格式占用32位的存储空间,格式为:TOD#时:分:秒.毫秒(注意秒和毫秒间是一点)。

提问者对于答案的评价:
谢谢。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午3:05
下一篇 2020年11月1日 下午3:05

相关推荐

  • 多个s7 200 和触摸屏通讯

    现在有7个s7 200 和一个plc1200 通过交换机和tp2200用博图组态通讯,s7里面的以太网向导都已经做好了,通过pc-acces和winc…

    自动化系统综合 2017年6月10日
  • 同步运行问题

    西门子440变频器输入主设定为模拟2,辅助设定为模拟1,且两模拟设定必须同步,两个设定同时有效,模拟1为电压输入。模拟2为电流输入,是另外一台变频器输出的模拟信号。假设本变频器设为…

    自动化系统综合 2017年11月29日
  • 关于个人发展问题

    本人是08年的毕业生,去年三月出来实习+工作已有1年了,主要是从事PLC电气设计方面的事,常见PLC基本的知识只能说熟悉,会用,做界面,通信也是略知一些,感觉在现在这个小公司里面长…

    自动化系统综合 2020年11月1日
  • TD400C上下键

    要实现风扇的启停,例如测量温度大于40℃风扇启动,小于40℃风扇停转,用比较语句,数据40是直接在程序里写的,没有存储空间,现在要用TD400的上下键实现对40这个数据的修改,即为…

    自动化系统综合 2018年12月5日
  • S—ODTS怎么自动复位

    用上升沿触发后,这个继电器就被置位了!再监控的时候就发现这个继电器一直处于1的状态!是不是非要加复位才可以复位啊!有没有其他的办法?或则其他的接通延迟继电器,我的触发信号时个上升沿…

    自动化系统综合 2020年10月31日
  • 为何不能播放?

    西门子读码器在制药行业的应用 课程编号:V0553 暂无简介 点击这里,打开新窗口观看完整视频 该视频下的所有用户提问列表 视频为何不能播放? 最佳答案 更换一下别的浏览器或者你们…

    2017年5月31日
  • WINCC问题

    我想用个按钮实现调用外部的一个WORD文档,我应该怎么实现? 请前辈指点 最佳答案 非常简单,系统提供了这种功能。 在标准wincc界面下,添加一个按钮,选中右…

    自动化系统综合 2020年11月1日
  • 咋么把原来得ISO设置回来

    从控制面板哪里把PG/PC设置成其他的以后 使用step7就通讯不上了咋么求  求告知 问题补充:求告知 具体步骤 快纠结死了 最…

    自动化系统综合 2017年6月8日
  • 关于分布式组态的问题!

    解释下ET200到底是什么东西!! 下来ET200有好多型号 比如:ET200M等 在step7种组态时,每个型号可选的东西都不一样! 有的…

    自动化系统综合 2020年11月1日
  • wincc7.2安装环境要求

    wincc7.2能在windows7专业版32位中文版安装吗 最佳答案 WINCC7.2支持的32位系统如下:Windows 7 SP1:Ultimate&nb…

    自动化系统综合 2017年6月9日