S7―200PLC双精度浮点数转换为整形-最新资料
- 格式:doc
- 大小:16.50 KB
- 文档页数:3
第3章习题答案1.填空1)输出指令(对应于梯形图中的线圈)不能用于过程映像输入寄存器。
2)SM 0.1 在首次扫描时为ON,SM0.0一直为ON 。
3)每一位BCD码用_4_位二进制数来表示,其取值范围为二进制数2#0000_~2#_1001_。
4)二进制数2#0100 0001 1000 0101对应的十六进制数是_16#4185_,对应的十进制数是_16773_,绝对值与它相同的负数的补码是2#_1011 1110 0111 1011_。
5)BCD码2#0100 0001 1000 0101对应的十进制数是_4185_。
6)接通延时定时器TON的使能(IN)输入电路接通时开始定时,当前值大于等于预设值时其定时器位变为ON ,梯形图中其常开触点接通,常闭触点断开。
7)接通延时定时器TON的使能输入电路断开时被复位,复位后梯形图中其常开触点断开,常闭触点接通,当前值等于0 。
8)有记忆接通延时定时器TONR的使能输入电路接通时开始定时,使能输入电路断开时,当前值保持不变。
使能输入电路再次接通时继续定时。
必须用复位指令来复位TONR。
9)断开延时定时器TOF的使能输入电路接通时,定时器位立即变为ON ,当前值被清零。
使能输入电路断开时,当前值从0开始增大。
当前值等于预设值时,输出位变为OFF ,梯形图中其常开触点断开,常闭触点接通,当前值保持不变。
10)若加计数器的计数输入电路CU 由断开变为接通、复位输入电路R 断开,计数器的当前值加1。
当前值大于等于预设值PV时,梯形图中其常开触点接通,常闭触点断开。
复位输入电路接通时,计数器被复位,复位后其常开触点断开,常闭触点接通,当前值为0 。
3.-914.16#5.无符号数。
6.VB20和VB21,VB207.VW20和VW22,VB20~VB23,VW22,VB208.十进制小数9.字符的个数10.3212.4个,8、16、32位13.程序组织单元,主程序、子程序、中断程序14.AIW215.VB100的地址,地址指针VD120所指的存储单元中的数16.在程序中修改操作数的地址,用于间接寻址。
西门子s7-200考试题及答案一、单项选择题(每题2分,共20分)1. 西门子S7-200系列PLC的编程语言不包括以下哪一项?A. 梯形图(LAD)B. 功能块图(FBD)C. 顺序功能图(SFC)D. 汇编语言(ASM)答案:D2. S7-200系列PLC中,以下哪个模块不是数字量输入模块?A. EM 223B. EM 231C. EM 222D. EM 235答案:D3. 在S7-200系列PLC中,模拟量输入模块的模拟输入信号类型是?A. 4-20mAB. 0-10VC. 0-20mAD. 以上都是答案:D4. 西门子S7-200系列PLC的存储器中,哪一部分用于存储程序?A. V存储区B. M存储区C. S存储区D. L存储区答案:A5. S7-200系列PLC中,以下哪个指令是用于比较两个操作数是否相等?A. =(等于)B. <>(不等于)C. >=(大于等于)D. <(小于)答案:A6. 在S7-200系列PLC中,以下哪个指令用于计算两个操作数的乘积?A. MULB. DIVC. ADDD. SUB答案:A7. S7-200系列PLC中,以下哪个指令用于将一个数值转换为字符串?A. ITDB. ITAC. ITOD. ITF答案:C8. 西门子S7-200系列PLC的通信协议中,以下哪个不是标准的通信协议?A. PPIB. AS-InterfaceC. ProfibusD. Ethernet答案:B9. S7-200系列PLC中,以下哪个指令用于读取系统时钟?A. TONB. TOFC. TMRD. RD_SYS答案:D10. 在S7-200系列PLC中,以下哪个指令用于设置定时器的预设值?A. SETB. RSTC. LD. T答案:D二、多项选择题(每题3分,共15分)11. 西门子S7-200系列PLC的以下哪些模块是数字量输出模块?A. EM 221B. EM 222C. EM 223D. EM 231答案:ACD12. 在S7-200系列PLC中,以下哪些指令是用于逻辑运算的?B. ORC. NOTD. XOR答案:ABCD13. S7-200系列PLC中,以下哪些指令用于数据处理?A. MOVB. SWAPC. FILLD. CONCAT答案:ABCD14. 西门子S7-200系列PLC的以下哪些模块是特殊功能模块?A. EM 231B. EM 235C. EM 253D. EM 25415. S7-200系列PLC中,以下哪些指令用于数学运算?A. ADDB. SUBC. MULD. DIV答案:ABCD三、判断题(每题2分,共20分)16. 西门子S7-200系列PLC的存储器中,V存储区是电池支持的非易失性存储区。
自动化:浮点数结构解释以及PLC或触摸屏实现双精度浮点数转单精度浮点数或双精度浮点数转整数。
工业控制中有些传感器(如:流量计)为了数据的精度,会采用双精度浮点数进行储存。
但是PLC与HMI有些是32位的,只能读取32位数据,不能读取64位的双精度浮点数。
在网上有大量计算机相关解释,但是大多过于晦涩难懂。
本人现在依据查阅整理资料得到收获,尽量浅显易懂的和大家分享。
注:以下所有程序均为最简单程序,不是最优程序。
一、数据结构介绍单精度(32 位)浮点数的结构:深绿色:符号位(S): 1bit (b31)浅绿色:指数部分(E): 8bit (b30-b23)浅红色:尾数部分(M): 23bit (b22-b0)单精度的指数部分(E)采用的偏置码为127(E-127)双精度(64 位)浮点数的结构:深绿色:符号位(S): 1bit (b63)浅绿色:指数部分(E): 11bit (b62-b52)浅红色:尾数部分(M): 52bit (b51-b0)双精度的指数部分(E)采用的偏置码为1023(E-1023)二、双精度浮点数转换为单精度浮点数优点:程序简短,逻辑简单。
缺点:不能转换整数部分多于【16777215】的双精度浮点数。
因为单精度浮点数的上限就是【16777215】。
且小数点精度会丢失一部分。
(由于单精度浮点数表达方式的限制,整数部分越大,小数位就越少)实现原理:通过上述数据结构观察分析可以得出双精度对比单精度的如下结论:最高位的正负符号位一致。
指数部分仅长度不一致,其余机制一致。
尾数部分仅后面新增加的长度不一致,前23位机制一致。
那么,只需提取相应的bit位并填写到合适的位置,就能实现转换了。
将指数的11位缩减到8位(保留最高位,舍弃移除最高位后的3位)。
将尾数的52位缩减到23位(舍弃移除最后的29位)。
双精度浮点数转单精度浮点数实现过程:将双精度浮点数从高位到低位存放到D0-D3。
转换结果存放在D10-D11。
西门子P L C浮点数转换为整型数
如有侵权请联系网站删除,仅供学习交流
西门子PLC浮点数转换为整型数
西门子300系统对于数据格式有着明确的规定,一般的四则运算都是只有在同一数据类型才能进行的,但在实际使用中很多情况不但需要进行整数到长整数再到浮点数的转换,也同样会需要进行浮点数到整数的反向转换,比如将上位机或程序内部运算出的浮点数通过模拟量输出端口转换为电流信号输出,模拟量输出端口是不能直接接受浮点数的,这是就必须进行浮点数到整数的转换了。
具体的转换原理:
浮点数通过“ROUND”指令四舍五入转换成长整数,再使用“MOVE”指令实现将长整数转存到一个整数存储区,在这里因为已知这个数是要送到模拟量输出端口的所以可以确信该数范围在-32768至32767,不至导致CPU故障停机。
仅供学习交流。
S7-200数据类型标题:S7-200数据类型引言概述:S7-200是西门子公司推出的一种经典PLC型号,其数据类型是PLC编程中非常重要的一部分。
了解S7-200数据类型对于PLC编程人员来说至关重要,本文将详细介绍S7-200数据类型的相关知识。
一、基本数据类型1.1 位(Bool):位是最基本的数据类型之一,用于表示开关量,取值为0或1。
1.2 字节(Byte):字节是由8位组成的数据类型,用于存储8位二进制数。
1.3 整型(Int):整型数据类型用于存储整数值,可以表示正负数。
二、浮点数据类型2.1 单精度浮点数(Float):单精度浮点数用于表示小数值,精度为6-7位有效数字。
2.2 双精度浮点数(Double):双精度浮点数用于表示更大范围的小数值,精度为15-16位有效数字。
2.3 定点数(Fixed Point):定点数用于表示带有固定小数点位置的数值,适用于需要精确计算的场景。
三、字符串数据类型3.1 字符串(String):字符串数据类型用于存储文本信息,可以包含字母、数字、符号等字符。
3.2 字符串数组(String Array):字符串数组可以存储多个字符串,每个字符串长度可以不同。
3.3 字符串指针(String Pointer):字符串指针用于指向字符串在内存中的位置,方便对字符串进行处理。
四、时间数据类型4.1 时间(Time):时间数据类型用于表示时间信息,包括时、分、秒等。
4.2 时间戳(Time Stamp):时间戳用于记录事件发生的时间,通常用于数据记录和分析。
4.3 定时器(Timer):定时器数据类型用于实现定时功能,可以设置定时时间和触发条件。
五、用户自定义数据类型5.1 结构体(Struct):结构体数据类型允许用户自定义复合数据类型,可以包含多个不同类型的数据成员。
5.2 枚举(Enum):枚举数据类型用于定义一组相关的常量,方便程序员进行编程。
5.3 数组(Array):数组数据类型用于存储多个相同类型的数据,可以按照索引访问数组元素。
一、时间继电器:TON 使能=1计数,计数到设定值时(一直计数到32767),定时器位=1。
使能=0复位(定时器位=0)。
TOF 使能=1,定时器位=1,计数器复位(清零)。
使能由1到0负跳变,计数器开始计数,到设定值时(停止计数),定时器位=0。
如下图:图1:使能=1时,TOF(T38)的触点动作图图2:使能断开后,计数到设定值后,TOF(T38)的触点动作图(其中T38常开触点是在使能由1到0负跳变后计数器计时到设定值后变为0的)TONR 使能=1,计数器开始计数,计数到设定值时,计数器位=1。
使能断开,计数器停止计数,计数器位仍为1,使能位再为1时,计数器在原来的计数基础上计数。
以上三种计数器可以通过复位指令复位。
正交计数器A相超前B相90度,增计数B相超前A相90度,减计数当要改变计数方向时(增计数或减计数),只要A相和B相的接线交换一下就可以了。
二、译码指令和编码指令:译码指令和编码指令执行结果如图所示:DECO是将VW2000的第十位置零(为十进制的1024),ENCO输入IN最低位为1的是第3位,把3写入VB10(二进制11)。
三、填表指令(ATT)S7-200填表指令(ATT)的使能端(EN)必须使用一个上升沿或下降沿指令(即在下图的I0.1后加一个上升沿或下降沿),若单纯使用一个常开触点,就会出现以下错误:这一点在编程手册中也没有说明,需要注意。
其他的表格指令也同样。
四、数据转换指令使用数据转换指令时,一定要注意数据的范围,数据范围大的转换为数据范围小的发注意不要超过范围。
如下图所示为数据的大小及其范围。
(1)BCD码转化为整数(BCD_I)关于什么是BCD码,请参看《关于BCD码》。
BCD码转化为整数,我是这样理解的:把BCD码的数值看成为十进制数,然后把BCD到整数的转化看成是十进制数到十六进制数的转化。
如下图所示,BCD码为54,转化为整数后为36。
整数转化为BCD码(I_BCD)则正好相反,看成是十六进制到十进制的转化。
S7―200PLC双精度浮点数转换为整形
现场总线技术是物联网核心技术之一,在物联网广为推行的今天被应用得更是淋漓尽致。
小型PLC为核心的小型测控终端拥有标准化构架、高可靠性、易于修改调整的控制编程、智能化、强大控制能力和现场总线通讯能力,使PLC系统构架更加灵活,被应用在很多工业分布集散型控制系统,如车间数台大型设备的分控、无人值守泵房的监控、城域管网系统的智能调控节点。
这些小型系统不仅集成了对现场设备工艺控制保护逻辑,还通过通讯总线无损读取流量计、智能电能仪表等现场仪表测量值和累计值,避免积算误差和线路干扰以及模拟采集精度误差,确保采集值与仪表读数的一致性。
内存空间较小、运算能力相对较弱是小型PLC的主要缺点,目前多数PLC缺少对双精度浮点数支持,而不少仪表的数据采用双精度浮点数格式存储,这就导致通讯采集的仪表数据不能进一步处理并用于工艺保护控制。
作者根据双精度浮点数定义,结合小型PLC指令特点,针对Siemens-S7200系列这类没有双精度浮点数指令的PLC,深入探讨在其中实现双精度数据便捷处理的方法。
本文仅以双精度数据取整转化为长整形数为例,其它诸如双精度转换成单精度等均可如法炮制。
现场总线,因为通讯信息无损,不需要考虑通道两端转换误差,正越来越多地被应用到各种现代控制检测系统。
尤其是针对
诸如流量计等具有累计信息的仪表,原始依靠瞬时量积算或脉冲亮积算方法往往会因PLC停电等原因导致PLC累计值与仪表读数不一致,通过总线的无损传输完全克服了读数不一致,无疑给管理带来极大方便,用户不必再抄录现场仪表读数。
通常PLC是第一接收来自仪表、智能控制器等总线数据的控制单元,甚至还需要PLC直接处理后用于现场人机界面显示或远程传输。
S7-200内部数据处理指令只能直接处理单精度浮点数。
双精度浮点采用64位数据存储。
流量计等仪表通常采用双精度浮点数直接积算出累计信息,因此其累计信息也通常采用双精度浮点数存储,但实际管理中,针对累计信息,一般只看整数部分,而仪表累计信息整数部分通常最多只显示9位或10位整数位。
比如流量计累计流量,管理部门通常只关心多少吨液体或多少标立方气体,小于1吨或1立方的数据往往被忽略。
因此为便于管理,需要在S7-200PLC中直接将双精度浮点数转化为整形字。
PLC 中只有双长整形数能达到10位整数位,有符号双长字整形数可以表达-2147483648~2147483647。
因此可以将双精度浮点数转换为双长字即能满足日常生产管理需要。
图一直接整数截取法适用于指数不大于30,最大截取误差为±1。
如果再根据截取后第一小数位判断即可实现四舍五入,使最大截取误差变为±0.5。
从图二S7-200指令实现可以看出,由于没有使用单精度计算,避免了单精度计算导致数据丢失,从而提高了转换精度,确保整数位与仪表读数一致性。
效果:使用Siemens S7-200系列PLC移位指令实现双精度浮点数取整,指令精简,计算精度高,完全实现Siemens S7-200系列PLC的双精度浮点数无损取整运算。
结论:通过移位处理,可以将双精度浮点数取整或单精度化,使小型PLC能够直接使用仪表通讯读取原始数据,用于计量分析和精细控制等功能,提高现场级智能控制终端的处理能力和数据分析能力。