300系列各种数据类型、数制之间的关系与转化

1、数制:二进制数、十六进制数、BCD数
2、基本数据类型:位、字节、字、双字、16位整数、32位整数、32位浮点数、常数
3、梯形图中数*算指令只允许用:I、DI、R三种数据类型
4、基本数据转换能在BCD与I、BCD与DI、DI与R之间转换
我的问题:
1、对于上述第4点中,BCD是数制啊,怎么又在和数据类型之间进行转换?
2、每种数据类型允许什么样的数制?
3、比如说我一个16进制的数据,我要与一个浮点数进行数*算,我该怎么转换?
4、怎么把word或者Dword的数转化成整数或者浮点数啊?
5、是不是进行编程的时候,只需要注意数据类型,不管这个类型里面的数是什么数制的都可以?
6、在程序里,对于一中数据类型的数据,我怎么知道他是以什么数制进行编制或者存储的?
7、比如说我的PIW、PQW、MW、MD等都是什么数据类型,又是什么数制的?
8、比如说我通过PIW读到了一个值,我怎么确定他是什么数据类型的啊?
数制与数据类型之间的关系让我感觉很迷糊,麻烦详细的给我讲讲啊!谢谢!

最佳答案

1、BCD是数制啊,怎么又在和数据类型之间进行转换?
BCD是以二进制表示的十进制数,如何转换请见下述手册的相关指令:
《用于S7-300 和S7-400 的语句表(STL)编程手册》下载:
http://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText= 1008
2、每种数据类型允许什么样的数制?
在CPU如何数据都是二进制的。你自己可根据实际应用需要的数制来转换。
3、比如说我一个16进制的数据,我要与一个浮点数进行数*算,我该怎么转换?
浮点数必须为双字长(32位),因此必须为32位双整数转换为浮点数后才能与一个浮点数进行运算。两者数据类型必须一致,32位双整数转换为浮点数的指令见上述手册。
4、怎么把word或者Dword的数转化成整数或者浮点数啊?
指令见上述手册。
5、是不是进行编程的时候,只需要注意数据类型,不管这个类型里面的数是什么数制的都可以?
只需要注意数据类型,相同的数据类型才能进行运算。有关数据类型见:
见《S7-300的数据类型》连接:
http://blog.gkong.com/more.asp?name=zhyo720211&id=2005
《Step 7 Elementary Data Types》:
http://www.plcdev.com/step_7_elementary_data_types
6、在程序里,对于一中数据类型的数据,我怎么知道他是以什么数制进行编制或者存储的?
存储都是二进制的。你自己要根据该变量表示是什么物理量来按此相应的数据类型来读取。
7、比如说我的PIW、PQW、MW、MD等都是什么数据类型,又是什么数制的?
这个是根据你自己的需要而定。
8、比如说我通过PIW读到了一个值,我怎么确定他是什么数据类型的啊?
是一个word还是int?
PIW是一个16位数,系统默认为WORD数据类型,可在符号表中定义为INT数据类型;
通常情况下WORD用于逻辑运算,INT用于数*算;
在使用梯形图或SCL等语言编程时区分较严格。
在使用语句表编程时系统不检测数据类型是否匹配,即WORD与INT在用法上没有什么区别(WORD可做数*算,INT也可作逻辑运算)
9、数制与数据类型之间的关系让我感觉很迷糊?
不会迷糊的。记住,是根据自己需要而定。应用实践时间长了,就清楚了。

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

专家置评

已阅,最佳答案正确。

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日
下一篇 2018年12月1日

相关推荐