技术论坛

Word是数据类型吗?

作者 主题
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
主题:Word是数据类型吗?
精华帖精华帖星级3级


只看楼主 只看精华 楼主 2012-06-28 21:25:59
这个问题就好像问“猴子是动物吗?”,我自己都觉得有点可笑。
但是我发现论坛里认为Word不是数据类型的人还不是个别的。他们认为WORD,BYTE等表示占用空间的大小,WORD只是说明数据的长度为16位,或两个字节。
1.STEP7帮助的“附录>数据类型和参数类型>基本数据类型”中的“基本数据类型”列表中有WORD(字)和DWORD(双字)。
2.FB、FC的局部变量表的数据类型中也有WORD和DWORD。
WORD(字)常用来说明数据的长度,和字节一样,相当于一个量词。但是WORD是个多义词,除了用来作量词外,还用来作数据类型用。就好像“天”是一个量词(例如一天两天),此外“天”还有很多别的用法一样。
WORD和INT都是16位的数据类型,区别在于有无符号。BYTE、WORD和DWORD数据类型的常数必须用16进制数来表示。
指令、FC和FB的输入、输出参数的实参的数据类型必须与定义的相同,否则会出错。
追求完美
精华帖版主置评: 廖老师说得很对,的确有很多人对此概念有混淆。辛苦了。
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=4&a_id=1001124&s_id=0&num=88

至圣

经验值: 63470
发帖数: 12672
精华帖: 121
回复:Word是数据类型吗?


只看楼主 只看精华 1楼 2012-06-29 08:50:09
WORD当然是数据类型,当然了如MW0这个全局变量,如果没有定义符号名称,那这个变量可以是字也可以是整数。
 
以下网友喜欢您的帖子:

  
游侠

经验值: 554
发帖数: 39
精华帖: 0
回复:Word是数据类型吗?


只看楼主 只看精华 2楼 2012-06-29 10:41:46
WORD可以表示为16位正整数。而INT表示16位正负整数(包含零)。
 
以下网友喜欢您的帖子:

  
奇侠

经验值: 7973
发帖数: 2355
精华帖: 73
回复:Word是数据类型吗?


只看楼主 只看精华 3楼 2012-06-29 12:27:04
呵呵,看帮助文件最好看原版英文的,中文的可能翻译不准确,不建议把中文的帮助文件看成是“圣~经”哦!
嘿嘿,我们不妨做一个很简单的实验,比如:
L -88
T MW100

L -88.88
T MD102
此时,还能说MW100这个Word变量是无符号的整数吗?还能说MD102这个DWord变量必须是16进制数吗?
我认为:Word、 DWord只是反映储存器容量的大小,它们充其量就是一装载数据的容器,赋什么样的数据类型到Word、DWord,那么它们就是什么数据类型!
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:Word是数据类型吗?


只看楼主 只看精华 楼主 4楼 2012-06-29 13:15:19
quote:以下是引用n次看你的背影在2012-06-29 12:27:04的发言:
呵呵,看帮助文件最好看原版英文的,中文的可能翻译不准确,不建议把中文的帮助看成是“圣~经”哦!
嘿嘿,我们不妨做一个很简单的实验,比如:
L -88
T MW100

L -88.88
T MD102
此时,还能说MW100这个Word变量是无符号的整数吗?还能说MD102这个DWord变量必须是16进制数吗?
我认为:Word、 DWord只是反映储存器容量的大小,它们充其量就是一容器,赋什么样的数据类型到Word、DWord,那么它们就是什么数据类型!

中文的圣经不行,就贴一个英文的吧!



N侠说的“MW100这个Word变量”,是否认为它的数据类型是Word?从它的长度看它是一个字,但是并不等于它的数据类型是Word。在符号表里定义后它才有数据类型,没有定义它就是个没有数据类型的绝对地址。
数据类型是人为定义的存储单元里的二进制数的属性,就像给数据穿的一件衣服。
如果没有定义MW100的数据类型,
L -88
T MW100
这两条指令执行后,MW100还是个绝对地址,它并没有因为T指令的执行自动获得数据类型INT。
如果我们在符号表里定义了MW100的数据类型为WORD,执行这两条指令后,MW100的数据类型不变,只是-88被当做W#16#FFA8来处理。
追求完美
以下网友喜欢您的帖子:

  
至圣

经验值: 10195
发帖数: 2115
精华帖: 3
回复:Word是数据类型吗?


只看楼主 只看精华 5楼 2012-06-29 22:05:38
虽然SIEMENS的帮助文件里面写的“WORD ”是数据类型,但我个人认为word只是告诉你这个寄存器的数据位数的长度是16,这也和它到底是正数和负数没有太多直接的关系,只要编程者自己知道它具体的应用,我觉得在这上面没有必要过多地去刻意区分它。
Kapok
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:Word是数据类型吗?


只看楼主 只看精华 楼主 6楼 2012-06-29 23:25:06
quote:以下是引用KAPOK在2012-06-29 22:05:38的发言:
虽然SIEMENS的帮助文件里面写的“WORD ”是数据类型,但我个人认为word只是告诉你这个寄存器的数据位数的长度是16,这也和它到底是正数和负数没有太多直接的关系,只要编程者自己知道它具体的应用,我觉得在这上面没有必要过多地去刻意区分它。

举个例子,SFC 14的输入参数LADDR(组态的I区起始地址)如果输入100则出错。为什么?它的数据类型为WORD,必须输入16#64!
再举一个例子,将OB40的参数OB40_MDL_ADDR直接用于比较指令也不行,因为它的数据类型为WORD,比较指令要求的数据类型为INT!数据类型重不重要?
德国人以严格著称,规定什么数据类型就必须用什么数据类型。数据类型不搞清楚,怎么编程序、读程序?
追求完美
以下网友喜欢您的帖子:

  
至圣

经验值: 19840
发帖数: 8834
精华帖: 39
回复:Word是数据类型吗?


只看楼主 只看精华 7楼 2012-06-30 09:26:07
quote:以下是引用n次看你的背影在2012-06-29 12:27:04的发言:
呵呵,看帮助文件最好看原版英文的,中文的可能翻译不准确,不建议把中文的帮助文件看成是“圣~经”哦!
嘿嘿,我们不妨做一个很简单的实验,比如:
L -88
T MW100

L -88.88
T MD102
此时,还能说MW100这个Word变量是无符号的整数吗?还能说MD102这个DWord变量必须是16进制数吗?
我认为:Word、 DWord只是反映储存器容量的大小,它们充其量就是一装载数据的容器,赋什么样的数据类型到Word、DWord,那么它们就是什么数据类型!

如果你定义了一个地址某个数据类型,那么这个变量就是这个类型。至于说里面的数据,那是你写程序的人都问题。
比如说,一个咖啡杯,你里面装的是茶水,那咖啡杯就不是咖啡杯了吗?
 
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:Word是数据类型吗?


只看楼主 只看精华 楼主 8楼 2012-06-30 10:08:35
quote:以下是引用shine在2012-06-30 09:26:07的发言:
quote:以下是引用n次看你的背影在2012-06-29 12:27:04的发言:
呵呵,看帮助文件最好看原版英文的,中文的可能翻译不准确,不建议把中文的帮助文件看成是“圣~经”哦!
嘿嘿,我们不妨做一个很简单的实验,比如:
L -88
T MW100

L -88.88
T MD102
此时,还能说MW100这个Word变量是无符号的整数吗?还能说MD102这个DWord变量必须是16进制数吗?
我认为:Word、 DWord只是反映储存器容量的大小,它们充其量就是一装载数据的容器,赋什么样的数据类型到Word、DWord,那么它们就是什么数据类型!

如果你定义了一个地址某个数据类型,那么这个变量就是这个类型。至于说里面的数据,那是你写程序的人都问题。
比如说,一个咖啡杯,你里面装的是茶水,那咖啡杯就不是咖啡杯了吗?

L指令和T指令只要不是位变量,什么数据类型都允许,梯形图中的MOVE指令也是一样。如果定义了MD102的数据类型为DINT,即使给它装入的是浮点数,操作系统也把装入的数当成DINT来用,MD102的数据类型也不会改变。
追求完美
以下网友喜欢您的帖子:

  
奇侠

经验值: 7973
发帖数: 2355
精华帖: 73
回复:Word是数据类型吗?


只看楼主 只看精华 9楼 2012-06-30 11:36:03
quote:以下是引用shine在2012-06-30 09:26:07的发言:
quote:以下是引用n次看你的背影在2012-06-29 12:27:04的发言:
呵呵,看帮助文件最好看原版英文的,中文的可能翻译不准确,不建议把中文的帮助文件看成是“圣~经”哦!
嘿嘿,我们不妨做一个很简单的实验,比如:
L -88
T MW100

L -88.88
T MD102
此时,还能说MW100这个Word变量是无符号的整数吗?还能说MD102这个DWord变量必须是16进制数吗?
我认为:Word、 DWord只是反映储存器容量的大小,它们充其量就是一装载数据的容器,赋什么样的数据类型到Word、DWord,那么它们就是什么数据类型!

如果你定义了一个地址某个数据类型,那么这个变量就是这个类型。至于说里面的数据,那是你写程序的人都问题。
比如说,一个咖啡杯,你里面装的是茶水,那咖啡杯就不是咖啡杯了吗?


呵呵,哪咖啡杯里面装着茶水,你会认为茶水是咖啡吗?其实问题的关键是装什么,xx杯只是一个容器哇,关键是要看里面装的是什么?^_^
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:Word是数据类型吗?


只看楼主 只看精华 楼主 10楼 2012-06-30 12:48:20
quote:以下是引用n次看你的背影在2012-06-30 11:36:03的发言:
quote:以下是引用shine在2012-06-30 09:26:07的发言:
quote:以下是引用n次看你的背影在2012-06-29 12:27:04的发言:
呵呵,看帮助文件最好看原版英文的,中文的可能翻译不准确,不建议把中文的帮助文件看成是“圣~经”哦!
嘿嘿,我们不妨做一个很简单的实验,比如:
L -88
T MW100

L -88.88
T MD102
此时,还能说MW100这个Word变量是无符号的整数吗?还能说MD102这个DWord变量必须是16进制数吗?
我认为:Word、 DWord只是反映储存器容量的大小,它们充其量就是一装载数据的容器,赋什么样的数据类型到Word、DWord,那么它们就是什么数据类型!

如果你定义了一个地址某个数据类型,那么这个变量就是这个类型。至于说里面的数据,那是你写程序的人都问题。
比如说,一个咖啡杯,你里面装的是茶水,那咖啡杯就不是咖啡杯了吗?


呵呵,哪咖啡杯里面装着茶水,你会认为茶水是咖啡吗?其实问题的关键是装什么,xx杯只是一个容器哇,关键是要看里面装的是什么?^_^

任意的数据类型的常数装入累加器1后,它的数据类型的属性就消失了,剩下的只有0和1。这样的数据传送到定义了数据类型的变量中,该变量的数据类型(咖啡杯)当然不会变,变量表管着它的,除非修改变量表。
追求完美
以下网友喜欢您的帖子:

  
至圣

经验值: 10195
发帖数: 2115
精华帖: 3
回复:Word是数据类型吗?


只看楼主 只看精华 11楼 2012-06-30 16:50:09
quote:以下是引用Automann在2012-06-30 12:48:20的发言:
quote:以下是引用n次看你的背影在2012-06-30 11:36:03的发言:
quote:以下是引用shine在2012-06-30 09:26:07的发言:
quote:以下是引用n次看你的背影在2012-06-29 12:27:04的发言:
呵呵,看帮助文件最好看原版英文的,中文的可能翻译不准确,不建议把中文的帮助文件看成是“圣~经”哦!
嘿嘿,我们不妨做一个很简单的实验,比如:
L -88
T MW100

L -88.88
T MD102
此时,还能说MW100这个Word变量是无符号的整数吗?还能说MD102这个DWord变量必须是16进制数吗?
我认为:Word、 DWord只是反映储存器容量的大小,它们充其量就是一装载数据的容器,赋什么样的数据类型到Word、DWord,那么它们就是什么数据类型!

如果你定义了一个地址某个数据类型,那么这个变量就是这个类型。至于说里面的数据,那是你写程序的人都问题。
比如说,一个咖啡杯,你里面装的是茶水,那咖啡杯就不是咖啡杯了吗?


呵呵,哪咖啡杯里面装着茶水,你会认为茶水是咖啡吗?其实问题的关键是装什么,xx杯只是一个容器哇,关键是要看里面装的是什么?^_^

任意的数据类型的常数装入累加器1后,它的数据类型的属性就消失了,剩下的只有0和1。这样的数据传送到定义了数据类型的变量中,该变量的数据类型(咖啡杯)当然不会变,变量表管着它的,除非修改变量表。

老师:变量表是管不住它的,只有编程者可以。
Kapok
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:Word是数据类型吗?


只看楼主 只看精华 楼主 12楼 2012-06-30 17:39:28
quote:以下是引用KAPOK在2012-06-30 16:50:09的发言:
[quote][b]
老师:变量表是管不住它的,只有编程者可以。

如果是全局变量,数据类型在变量表中定义,当然是变量表直接管它。
除了变量表,FB、FC的局部变量表和数据块中的变量都定义了数据类型。编程者必须通过这些东西来管数据类型。
追求完美
以下网友喜欢您的帖子:

  
侠圣

经验值: 2931
发帖数: 664
精华帖: 22
回复:Word是数据类型吗?


只看楼主 只看精华 13楼 2012-06-30 18:55:42
个人观点,这个问题没必要去较真。只是一种表达方式而已。
在STEP7中,定义变量的时候,可以建立INT,也可以建立word,如果说word不是数据类型,那么应该说它是什么呢?不过话说回来,我的习惯一般不称其“数据类型”,而称其“变量类型”。
所以说起来的话,word也是数据类型,但是这种表达方式和INT这样的表达方式不同,角度不同,或者说,word包含了int,word从直观上说,注重的角度是容量或者说长度。而int更注重具体的类型。
就像是阀门之类的,从不同的角度去分类,是有不同的类型的,但这些类型之间是有交叉的。
没有个性的签名就别签了。
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:Word是数据类型吗?


只看楼主 只看精华 楼主 14楼 2012-06-30 19:30:01
quote:以下是引用eaglesky在2012-06-30 18:55:42的发言:
个人观点,这个问题没必要去较真。只是一种表达方式而已。
在STEP7中,定义变量的时候,可以建立INT,也可以建立word,如果说word不是数据类型,那么应该说它是什么呢?不过话说回来,我的习惯一般不称其“数据类型”,而称其“变量类型”。
所以说起来的话,word也是数据类型,但是这种表达方式和INT这样的表达方式不同,角度不同,或者说,word包含了int,word从直观上说,注重的角度是容量或者说长度。而int更注重具体的类型。
就像是阀门之类的,从不同的角度去分类,是有不同的类型的,但这些类型之间是有交叉的。

看来你没有认真看我一楼的帖子。Word(字)是个多义词,可以用来表示长度。Word作为数据类型时与INT是水火不相容的。
追求完美
以下网友喜欢您的帖子:

  
游士

经验值: 151
发帖数: 57
精华帖: 0
回复:Word是数据类型吗?


只看楼主 只看精华 15楼 2012-06-30 22:48:50
[COLOR=blue]
INT和WORD不就是“占16位的有符号数”和“占16位的无符号数”这两种数据类型嘛?没什么好混淆的啊。
而且并不存在咖啡杯里装茶水的说法。如果硬要把INT和WORD比喻成容器的话,那也是两种容器,只是恰恰它们的容积相同而已。假如把INT比喻成咖啡杯,把WORD比喻成茶水杯,那么就必须咖啡杯里装咖啡,茶水杯里装茶水,绝对不允许咖啡杯里装茶水,茶水杯里装咖啡的事情存在!即不存在“xx杯只是一个容器哇,关键是要看里面装的是什么”这种说法。
因此我赞成廖老师的意见,1就是1,2就是2,编程讲究的就是严谨,不然的话会出现很多错误的。
[/COLOR]
 
以下网友喜欢您的帖子:

  
至圣

经验值: 15669
发帖数: 644
精华帖: 0
回复:Word是数据类型吗?


只看楼主 只看精华 16楼 2012-07-01 09:14:07
高手之间的探讨。学习了,谢谢
岂能尽如人意 但求无愧我心
以下网友喜欢您的帖子:

  
奇侠

经验值: 7973
发帖数: 2355
精华帖: 73
回复:Word是数据类型吗?


只看楼主 只看精华 17楼 2012-07-01 14:00:54
哎。。。。。。有些人把Word、DWord变量的数据类型都已经定义好了,还有必要讨论楼主的问题吗?难道不感觉好笑吗?无语中。。。。。。^_^
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:Word是数据类型吗?


只看楼主 只看精华 楼主 18楼 2012-07-01 15:03:33
quote:以下是引用n次看你的背影在2012-07-01 14:00:54的发言:
哎。。。。。。有些人把Word、DWord变量的数据类型都已经定义好了,还有必要讨论楼主的问题吗?难道不感觉好笑吗?无语中。。。。。。^_^

在STEP7的帮助中搜索不到“Word变量”,也搜索不到“字变量”。搜索“Word”,全部是用来表示数据类型的,找不到用Word这个词来表示数据长度的。可以找到“INT型变量”,即数据类型为INT的变量。按照德国人的习惯,我理解Word变量就是数据类型为Word的变量。中文说数据的长度是说16位、字、两个字节,不知道诸位是否使用“Word变量”这个说法。
我的帖子并没有否认Word(翻译为“字”)可以作量词,用来表示数据长度为16位,我并没有使用”Word变量“这个词,更谈不上”定义好了Word变量的数据类型“。
我指出”STEP7帮助的“附录>数据类型和参数类型>基本数据类型”中的“基本数据类型”列表中有WORD(字)和DWORD(双字)“,以此来证明Word是数据类型。
N侠说”呵呵,看帮助文件最好看原版英文的,中文的可能翻译不准确,不建议把中文的帮助文件看成是“圣~经”哦!",由此好像可以得出推论,N侠对WORD是数据类型这个结论是有怀疑的。
追求完美
以下网友喜欢您的帖子:

  
奇侠

经验值: 7973
发帖数: 2355
精华帖: 73
回复:Word是数据类型吗?


只看楼主 只看精华 19楼 2012-07-01 15:39:40
口水贴在论坛屡见不鲜,不说了A兄。你书看的多,我推测你理解的更深刻一点,求同存异吧,在现实社会中也是允许的!有些事情太较真并没有太大的意义。在论坛中印象比较深刻,记得总坛主“谦”说的非常好:“讲学”不如“躬行”!多做点实事,在能力范围之内多帮助一下需要帮助的人吧,这样可能会更靠谱!
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
以下网友喜欢您的帖子:

  
收起
Word是数据类型吗?
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。