技术论坛

 回复:请教16#FC是什么意思

返回主题列表
作者 主题
qi08
新手

经验值:27
发帖数:11
精华帖:0
楼主    2005-05-15 16:20:56
主题:请教16#FC是什么意思
各位老师:小弟新手,看S7-200编程手册时出现的一些16进制的数,不知到它们的意思,以及输入到特定的位后会出现什么结果。如16#FC、16#31等,也不知到它们是否是特定的含义,望高手指教,小弟在这谢谢了。我的邮箱QIZHEN98@SOHU。COM
GW
侠客

经验值:603
发帖数:506
精华帖:5
    2005-05-15 20:59:55
精华帖  主题:回复:请教16#FC是什么意思
S7-200系统中的数据及其格式
在S7-200中,各种指令对数据格式都有一定要求,指令与数据之间的格式要一致才能正常工作。例如,为一个整数数据使用实数(浮点数)运算指令,显然会得到不正确的结果。
数据有不同的长度(以二进制表示它们时,占据的位数不同),也就决定了数值的大小范围。所有的数据在PLC中都是以二进制形式表示的
· 数据都有其特定的长度和表示方式,称为格式
· 数据的格式与用于运算、处理它的指令相关
· 以不同的格式查看一个数据,或是使用不同格式的指令处理它,会得到不同的效果
二进制数: 所有通过S7-200 PLC处理的数据(数值、字符等等)都以二进制形式表示。在S7-200中,特别指出一个数据是二进制数并没有什么意义。
十六进制数:在二进制数中,每4个二进制位可以分为一组;这组二进制数值的不同变化可以表示16个状态,正好是16进制数每一位数字的变化范围。因此,可以用十六进制数值方便地表示二进制数。 你说的16#FC、16#31 都是十六进制数
十进制数:十进制是S7-200的数学计算的基础,在S7-200中,一般都使用十进制的体系,除了时间(12/24或60进制)等特殊数据外。
二进制数用于在PLC中表示十进制数值、或者其他(如字符等)数据,而16进制用来比较简单地描述二进制数。
在S7-200中,二进制立即数表示为2#xxxx_xxxx(1字节长度),16进制立即数表示为16#xx(1字节长度)。
二进制位逻辑(bit)
PLC中以二进制“位”的数据形式来表示逻辑“1”、“0”(或者“开”、“关”)。位是最基本的数据单位。
在数据字节(Byte)中,二进制逻辑只用一个位(bit)来表示。每个字节由8个位组成。
整数、无符号整数和有符号整数
字节、字、双字都可以用来表示十进制整数,显然它们的数据长度不同,能够表示的数的大小范围也不同。
无符号整数只有0和正整数;有符号整数可以有正数和负数。
有符号整数采用二进制补码的形式来表示负数。
· 在S7-200中,字节、字、双字都可以按照无符号、有符号整数来查看
· Micro/WIN中,整数运算指令在指令树的Integer Math分支中
· 只有字节运算指令(带B符号的指令,如INC_B等)是无符号整数运算指令
· 凡带有I,W,DW等(除字节B指令外)的数学运算指令,都是有符号整数运算指令
· 定时器、计数器的值都是有符号整数
· HSC(高速计数器)的计数当前值(HCx)和设定值都是32位的有符号整数
· 在编程软件Micro/WIN中输入立即数据时,如果不输入小数点,则认作整数
在不需要高精度运算的条件下,使用整数可以简化编程,节省处理时间。
实数(浮点数)
在S7-200中,实数(浮点数)是符合IEEE标准的32位实数,即单精度实数。实数格式按照一定的运算规律把32个二进制位分组,表示极小或极大的数。
· S7-200的实数运算指令都在指令树的Floating-Point Math(实数运算) 分支中
· 实数当作整数运算的时候会导致数值的错误;而整数当作实数应用可能会使数据非法(不符合标准)
· 在编程软件Micro/WIN中输入带小数点数据的数据,则认为实数(实数形式的整数值必须输入小数点和一位为零的小数位,如10.0)
ASCII字符和String(字符串)
在S7-200中,ASCII字符是由表示字母、数字和一些特殊符号的ASCII编码组成的二进制数据字节,一个字节存储一个字符。
ASCII(美国信息交换标准码)是一种字符编码格式,在一个字节长度中不同的二进制数值代表不同的字符。如字母A为41h(十六进制数值),以十进制看就是65;而数字5的ASCII值为35h,十进制值为53。
S7-200中新引入了String(字符串)数据格式,其结构是在ASCII字符字节串前面有一个串长度。字符串最长可以有255个数据字节。
字符串中也能包括汉字编码,每个汉字占用两个字节。
这是S7-200内部对ASCII字符串的格式定义,所有与字符串有关的指令都遵照这个格式。
· 在编程软件中,用单字节(英文)的单引号(')将作为字符的内容括起来可以在数据块和状态图中输入ASCII数据字节
· 在单字节的双引号(")中间输入文本内容可以输入字符串
· 按上述方法输入的字符串会自动按字符串格式排列(在起始地址中放入字符个数)
· 使用程序,或人为组合成的ASCII字符串,使用ASCII字符串指令时,必须注意是否符合格式
注意ASCII字节和字符串的区别。如:D6D0h是汉字“中”的编码。
Step7 - Micro/WIN V4.0以上版本完全支持字符串数据格式。
BCD
BCD意为“二进制编码的十进制数”。BCD是一种编码方式,是以二进制数对十进制数字的编码,并因为16进制的优势,改用十六进制数字表示。
十进制只有十个数字,所以以16进制表示的BCD码不会出现16进制数字Ah - Fh。
十进制数39用BCD码表示就是39h,或16#39。BCD码数值必须用16进制查看才能得到正确结果。
BCD编码往往在使用BCD编码开关输入数据时用到;S7-200中读出的时钟日期数据也是以BCD编码表示。
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。