:1800弄(电子商务园)5005公司主营:西门子数控系统,V20变频器S7-200CN.S7-200smart.S7-300.S7-400.S7-1200.6ES5 ET200 人机界面,变频器,DP总线,MM变频器,6SE70交流工程调速变频器6RA70等系列产品。
产品简介
详细介绍
西门子精智面板6AV2124-1QC02-0AX0检测
本公司宗旨:本着以诚信为本,以顾客为中心,让顾客满意,创造一个舒心的购物
实数的格式
实数(浮点数)由32位单精度数表示,其格式按照ANSI/IEEE 754- 1985中所描述的形式,参见图4--9。实数按照双字长度来存取。
对于S7- 200来说,浮点数到小数点后第六位。因而当您使用一个浮点数常数时,多可以到小数点后第六位。
MSB 31 30
23 22
LSB 0
符号位
图4--9 实数的格式
实数运算的精度
在计算中涉及到非常大和非常小的数,则有可能计算结果不。例如数值相差10的x次方倍,
而x>6时。
例如: 100 000 000 + 1 = 100 000 000
字符串的格式
字符串指的是一系列字符,每个字符以字节的形式存储。字符串的个字节定义了字符串的长度, 也就是字符的个数。4--10给出了一个字符串的格式。一个字符串的长度可以是0到254个字符,再加上长度字节,一个字符串的长度为255个字节。而一个字符串常量的长度为126字节。
长度 | 字符1 | 字符2 | 字符3 | 字符4 | ... | 字符254 |
字节0
字节1
字节2
字节3
字节4
字节254
图4--10 字符串的格式
在S7- 200指令中输入常数值
在S7- 200的许多指令中,都可以使用常数值。常数可以是字节、字或者双字。S7- 200以二进制数的形式存储常数,可以分别表示十进制数、十六进制数、ASCII码或者实数(浮点数)。见表4--2。
表4--2 常数表示法
数制 | 格式 | 举例 |
十进制 | [十进制值] | 20047 |
十六进制 | 16#[十六进制值] | 16#4E4F |
二进制 | 2#[二进制数] | 2#1010_0101_1010_0101 |
ASCII码 | ’[ASCII码文本]’ | ’ABCD’ |
实数 | ANSI/IEEE 754- 1985 | +1.175495E- 38 (正数)- 1.175495E- 38 (负数) |
字符串 | “[字符串文本]" | “ABCDE" |
本地I/O和扩展I/O的寻址
CPU提供的本地I/O具有固定的I/O地址。您可以将扩展??榱拥?/span>CPU的右侧来I/O点,形成I/O 链。对于同种类型的输入输出模块而言,模块的I/O地址取决于I/O类型和??樵?/span>I/O链中的位置。举例 来说,输出??椴换嵊跋焓淙肽?樯系牡愕刂?,反之亦然。类似的,模拟量??椴换嵊跋焓至磕??/span> 的寻址,反之亦然。
图4--11中是一个特定的硬件配置中的I/O地址。地址间隙(用灰色斜体文字表示)无法在程序中使用。
图4- 11 CPU224XP的本地和扩展I/O地址举例
用指针对S7- 200存储区间接寻址
间接寻址是指用指针来访问存储区数据。指针以双字的形式存储其他存储区的地址。只能用V存储 器、L存储器或者累加器寄存器(AC1、AC2、AC3)作为指针。要建立一个指针,必须以双字的形式, 将需要间接寻址的存储器地址到指针中。指针也可以作为参数传递到子程序中。
S7-200允许指针访问下列存储区: I、Q、V、M、S、AI、AQ、SM、T (仅当前值)和C (仅当前
值)。无法用间接寻址的访问单独的位,也不能访问HC或者L存储区。
要使用间接寻址,应该用“&"符号加上要访问的存储区地址来建立一个指针。指令的输入操作数应 该以“&"符号开头来表明是存储区的地址,而不是其内容将到指令的输出操作数(指针)中。
当指令中的操作数是指针时,应该在操作数前面加上“*"号。如图4--12所示,输入*AC1AC1 是一个指针,MOVW指令决定了指针指向的是一个字长的数据。在本例中,存储在VB200和VB201 中的数值被到累加器AC0中。
V199
V200
V201 V202 V203
AC1
MOVD &VW200, AC1
将VB200的地址(VW200的起始地址)作为指针存入AC
MOVW *AC1, AC0
将AC1所指向的字(VW202)中的值送入AC0
图4--12 创建和使用指针
V199
V200
V201 V202 V203
AC1
MOVD &VW200, AC1
将VB200的地址(VW200的起始地址)作为指针存入AC1中。
MOVW *AC1, AC0
将AC1所指向的字(VW200)中的值送入AC0
V199 V200 V201
V202
V203
+D +2, AC1
将AC1中的数值加2指向下一个字
MOVW *AC1, AC0
将AC1所指向的字(VW202)中的值送入AC0
图4--13 改变指针
用地址偏移量来访问V存储区数据的范例程序 | |
本例中用LD10作为VB0的地址指针。然后可以利用VD1004中存储的地址偏移量来改变指针值。经过改变后,LD10指向 V区中的另外一个地址(VB0 + 偏移量)。然后将LD10指向的V区地址中存储的数值到VB1900中。通过改变VD1004 中的数值,您可以访问V存储器中的任意单元。 | |
Network 1 //如何使用偏移量读取 //所有VB位置的数值: //1. 将V存储器的起始地址装载到指针中。 //2. 将偏移量值添加到指针中。 //3. 将V存储器位置(偏移量)中的数值到VB1900。 LD SM0.0 MOVD &VB0, LD10 +D VD1004, LD10 MOVB *LD10, VB1900 |
本例中用LD14作为指向一个配方表的指针,配方表的起始地址为VB100。在本例中VW1008用来存储一个的配方在 表中的索引号。如果每条配方的长度为50个字节,则用这个索引号乘以50就可以这条配方起始地址的偏移量。用指 针加上偏移量,您就可以访问表中的每一条配方。在本例中,配方被到从VB1500开始的50个字节中。 | |
Network 1 //如何从配方表传送配方: // - 每个配方的长度为50个字节。 // - 索引值(VW1008)装载哪一条配方。 //1. 创建一个指向配方表 // 起始地址的指针。 //2. 将配方的索引转换为 // 双字值。 //3. 偏移量,以容纳 // 每个配方的大小。 //4. 将调节后的偏移量添加到指针中。 //5. 将选定的配方传送到 // VB1500至VB1549。 LD SM0.0 MOVD &VB100, LD14 ITD VW1008, LD18 *D +50, LD18 +D LD18, LD14 BMB *LD14, VB1500, 50 |
下一篇:西门子精智面板6AV3688-3AF37-0AX0检测