S7―200PLC双精度浮点数转换为整形-最新资料
S7-200 PLC功能指令及应用

4
ቤተ መጻሕፍቲ ባይዱ
转换指令
转换指令是指对操作数的类型进行转换,包括数据的类型转换、码的 类型转换以及数据与码直接的类型转换。
1. 数据类型转换指令
2. 编码与译码指令 3. 段码指令 4. ASCII码转换指令 5. 字符串转换指令
1
数据类型转换指令
可编程序控制器中的主要数据类型包括字节、整数、双整数和实数。 主要的码制BCD码、ASCII码、十进制数和十六进制数等等。 不同性质的指令对操作数的类型要求不同。 在指令使用之前需要将操作数转化成相应的类型,这样才能保证指令的正确执行。 (1)字节与整数 字节到整数 指令格式:LAD及STL指令格式如图6-18a所示 功能描述:将字节型输入数据IN转换成整数类型,并将结果送到OUT输出。 字节型是无符号的,所以没有符号扩展位。 数据类型:输入为字节,输出为INT。 整数到字节 指令格式:LAD及STL指令格式如图6-18b所示 功能描述:将整数输入数据IN转换成字节类型,并将结果送到OUT输出。 输入数据超出字节范围(0~255)时产生溢出。 数据类型:输入为INT,输出为字节。
VM104
VM106 VM108 VM110 VM112
1203
4467 9086 3592 222
数据0
数据1 数据2 数据3 将VM200中的数据填入表中
VM114
****
无效数据
2
表取数指令
从表中取出一个字型数据可有两种方式:先进先出式和后进先出式。 一个数据从表中取出之后,表的实际填表数EC值减小1.两种方式的指令在梯形图中有 2个数据端。 (1):先进先出式 FIFO 指令格式:LAD及STL指令格式如图6-17b所示
值为当前的英寸计数值,1英寸=2.54厘米.(VD4)=2.54。
西门子200SMART PLC处理双精度浮点数

介绍一下双精度浮点数在计算机中的表示方法:
64位(符号位S) 52-62位(指数部分E)
0-51位(尾数部分M)
双精度浮点公式:(-1)^S * 2^(E-1023) * 1.M ,E-1023为阶码,用P表示。用 200SMART PLC解析双精度浮点数方法如下:
1、新建子程序,定义如下接口参数:
西门子200SMART转换双精度浮点数
通过串口读取某些设备的数据时经常会遇到某些数据的数据类型为DOUBLE FLOAT即为双精度浮点数,该种数据类型占8个字节即64位,200PLC只支持32位浮 点数的运算,所以要想在PLC中处理双精度浮点数,除非PLC编程软件(例如西门子 博图)支持双精度浮点数运算,否则就要退而求其次,将双精度浮点数通过计算处 理为32位浮点数,虽然32位浮点数的范围没有64位浮点数范围大,但也能基本满 足使用要求。
该段程序计算2的P(阶码)次方乘以上段程序的小数值得到最后的32位浮点数值。 程序块调用:
LW0、LW2、LW4、LW6为组成双精度浮点数的4个字,顺序由高到低。
• 2、开始编程,计算阶码值:
最高字与7FF0(0111111111到阶 码值P,并将该值转换为real类型。 计算小数值:
该程序段计算小数部分值,尾数部分7个字节的小数值,求和后加1.0。 最后结果计算:
PLC数据类型及转换.

送到OUT输出。
❖梯形图:
语句表:DTR IN, OUT
职业教育机电一体化专业教学资源库
三、应用练习
6 5
4
1
3
2
职业教育机电一体化专业教学资源库
三、应用练习——抢答器控制系统
要求:3个抢答台和1个主持人,每个抢答台上各有1个抢答按钮, 参赛者在允许抢答时,当某参赛者抢先按下按钮,显示器显示该 组号码,此后另外两个抢答台上即使在按各自的抢答按钮,其指 示灯也不会亮。这样主持人就可以轻易的知道谁是第一个按下抢 答器的。该题抢答结束后,主持人按下主持台上的复位按钮,则 显示0,又可以进行下一题的抢答比赛。显示器为七段数码管。
四、小结
数据类型
布尔型 整数型 实数型 字符串
数据转换
字节数与整数的互换 整数与双字整数的互换 双字整数与实数的互换 BCD码与整数的互换 段码、译码、编码
职业教育机电一体化专业教学资源库
❖ 梯形图:
语句表:SEG IN, OUT
❖ 例子:
职业教育机电一体化专业教学资源库
七段显示码的编码规则(共阴极)
16#6
16#D
职业教育机电一体化专业教学资源库
BCD码与整数相互转换 ASCII码与16进制数相互转换
职业教育机电一体化专业教学资源库
编码/译码指令
取整指令
❖使能输入有效时,将输入的实数IN转换成双整数的值,并将结果
电控与PLC控制技术
项目八 位置控制及显示器
广西机电职业技术学院
职业教育机电一体化专业教学资源库
任务一 PLC数据类型及转换 任务二 位置控制及显示器
职业教育机电一体化专业教学资源库
一、S7-200PLC的 数据类型
最新S7-200-PLC编程及应用(廖常初第2版)习题参考答案

第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考试题及答案

西门子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或触摸屏实现双精度浮点数转单精度浮点数或双精度浮点数转整数。
工业控制中有些传感器(如:流量计)为了数据的精度,会采用双精度浮点数进行储存。
但是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。
最新西门子PLC浮点数转换为整型数

西门子P L C浮点数转换为整型数
如有侵权请联系网站删除,仅供学习交流
西门子PLC浮点数转换为整型数
西门子300系统对于数据格式有着明确的规定,一般的四则运算都是只有在同一数据类型才能进行的,但在实际使用中很多情况不但需要进行整数到长整数再到浮点数的转换,也同样会需要进行浮点数到整数的反向转换,比如将上位机或程序内部运算出的浮点数通过模拟量输出端口转换为电流信号输出,模拟量输出端口是不能直接接受浮点数的,这是就必须进行浮点数到整数的转换了。
具体的转换原理:
浮点数通过“ROUND”指令四舍五入转换成长整数,再使用“MOVE”指令实现将长整数转存到一个整数存储区,在这里因为已知这个数是要送到模拟量输出端口的所以可以确信该数范围在-32768至32767,不至导致CPU故障停机。
仅供学习交流。
西门子PLC字符串转为INT,DINT模块FC37和FC38

I will appreciate if someone can point me in the direction on how to make a string from the bytes, so I can try the FC37 and convert it to a DInt.
L PIB261
T DB1.Text[1] //If your string is named text
L PIB262
T DB1.Text[2]
......
CALL "STRNG_DI"
S :=DB1.Text
RET_VAL:=MD0
Last edited by Bratt; April 28th, 2008 at04:19 AM.
Kann mir jemand helfen, bevor ich verzweifle.
Danke.
noeppkes ...
Öffentliches Profil ansehen
Suche alle Beiträge von noeppkes
Ralle
Super-Moderator
Registriert seit: 27.05.2004
ICh habe hierzu ohne Erfolg folgenden Code probiert.
CodБайду номын сангаас:
CALL "BLKMOV"
SRCBLK :=P#DB20.DBX8.0 BYTE 4 // //"RCV_DB_A".comment[8] byte 4
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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能够直接使用仪表通讯读取原始数据,用于计量分析和精细控制等功能,提高现场级智能控制终端的处理能力和数据分析能力。