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

相关推荐

  • profibus PA 是否可以用RS485中继器进行中继

    现场的profibus PA设备有西门子阀门定位器和罗斯蒙特的压力变送器,只是这两家离得有点远,想通过RS485中继器给压力变送器那一侧接力一下,不知道可以不可以。如果不…

    自动化系统综合 2020年10月31日
  • plc的模块

    2个系列的PLC要安装同一功能的模块,那一般这个功能的模块是可以装在2个系列的PLC上,还是不同的PLC要安装同一功能的模块,需要不同型号的模块呢? 最佳答案 不同系列的PLC有配…

    自动化系统综合 2020年11月1日
  • 808D螺距补偿

    请问,808D螺距补偿具体方法? 问题补充:808D系统的车床X轴,机床坐标实际值显示的是半径值,那么补偿值也是半径值吗?是不是有什么参数设置能使机床坐标实际值显示为直径值?比如车…

    自动化系统综合 2017年11月16日
  • 博图软件是不是所有西门子型号都能组态

    博图软件是不是所有西门子型号都能组态 最佳答案 全新工程设计软件平台,Totally Integrated Automation( 全集成自动化)博途…

    自动化系统综合 2017年6月3日
  • IM模块使用

    新手问下IM扩展模块的问题,一种情况是主站用im360,连从站的im361,此时主从都需要连接IM模块。而在使用ET200链接主站的时候,我看从主站DP,连到从站的IM153接口模…

    自动化系统综合 2017年11月1日
  • 电气制图

    各位学长,能否给我提供一些标准的电气图纸。包括电气原理图,电气布置图和电气接线图。最好是PLC的。谢谢了。     我的E-mai…

    自动化系统综合 2020年11月1日
  • PLC通过FESTO阀岛控制气动阀

    1,PLC不通过通讯直接通过硬点可以么?2,FESTO阀岛哪一款是最基本的。3,选阀岛是不是还是配合着气动阀来选? 问题补充:我现在就是需要选一个阀岛,一共是7个气动阀,通过DO控…

    自动化系统综合 2017年12月8日
  • 中频炉加热问题

    我这里有一台350KW的中频加热炉,我现在想加热体积一样的的铜,铝,锌三种材料,哪种材料温升最快。有不有这方面的资料参考,谢谢! 最佳答案 应该是铜最快,铝次之,锌最慢。具体看它们…

    自动化系统综合 2020年10月31日
  • 数组

    ST数组里, array[1.0.10] of real是什么意思 问题补充:我知道array[0..10]的意思,但我在文档上看到array[1.0…

    自动化系统综合 2020年10月31日
  • S7-200 SMART COM1 自由口通讯

    我使用的光通讯在S7-200 COM1口用自由口协议编写的程序可以通讯,在s7-200SMART COM1口怎么就不可以了 图片说明:   …

    2017年5月31日