1、项目3 数制、数据类型和寻址方式1 数制所有的数值在PLC中都是以二进制形式表示的,数据的长度和表示方式称为数据格式。S7-200 PLC 的指令对数据格式有一定的要求,指令与数据之间的格式一致才能正常工作。矚慫润厲钐瘗睞枥庑赖。1) 计数体制常用的技术体制有十进制、二进制、十六进制等。(1) 十进制数在十进制数中,用0,1,2,3,4,5,6,7,8,9这十个不同数码按照一定的规律排列起来表示数值的大小,其计数规律是“逢十进一”。十进制数是以10为基数的计数体制。聞創沟燴鐺險爱氇谴净。各位数表示的数值就是该位数码(系数)乘以相应的权。按此规律,任意一个十进制数(N)都可以写成按权展开式残骛楼
2、諍锩瀨濟溆塹籟。= =(2) 二进制二进制是以2为计数的计数体制。它只有0和1两个数码,采用“逢二进一”的计数规律。任意一个二进制数都可以写成按权展开式酽锕极額閉镇桧猪訣锥。 =二进制数比较简单,只有0和1两个数码,并且算术运算也很简单。(3) 十六进制数十六进制数是以16为基数的计数体制,它用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F这16个数码表示,采用“逢十六进一”的计数规律。四位二进制码可以用一位十六进制码来表示。任意十六进制数可以写成按权展开式彈贸摄尔霁毙攬砖卤庑。 =表1 几种数制对照表十进制数二进制数十六进制数0000001000112001023001134
3、01004501015601106701117810008910019101010A111011B121100C131101D141110E151111F(4) 数制转换1) 二进制数转换成十进制数例如:将二进制数转换成十进制数=2) 十进制数转换成二进制数例如:将45转换成二进制数用短除取余法 数值从下往上记3) 十六进制数转换成十进制数例如:将十六进制数转换成十进制数=4) 十进制转换成十六进制数10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成16。 同样是45,转换成16进制则为: 2DH5) 二进制数转换成十六进制数二进制数要转换为十六进制,就是以4位一
4、段,分别转换为十六进制。 如:上行为二制数,下面为对应的十六进制; 1111 1101 , 1010 0101 , 1001 1011 F D , A 5 , 9 B 2#111111011010010110011011=16#FDA59B6) 十六进制数转换成二进制数反过来,当我们看到 FDA59BH时,如何迅速将它转换为二进制数呢? F D A 5 9 B 1111 1101 1010 0101 1001 1011 16#FDA59B=2#111111011010010110011011(5) 奇偶校验码 数码在传送和存取过程中,会发生将“1”码误成“0”码、“0”码误成“1”码的错误。为
5、了。为了检查出这种错误,可采取奇偶校验码的编码方式。代码有两部份组成:一部分是信息位,一部分是检误位。若加上去的检误位中的“1”码的个数和信息位中的“1”码的个数之和为奇数个,则为奇校验码,否则为偶校验码。謀荞抟箧飆鐸怼类蒋薔。 例如,对8位一组的二进制码来说,若低7位为信息位,最高位位检误位,码组1011011的奇校验码为01011011,而偶校验码为11011011。厦礴恳蹒骈時盡继價骚。 在代码传送过程中,对所收到的码组中“1”码的个数进行计算,如“1”码的个数与预定的不同,则可判断已经产生了误码。茕桢广鳓鯡选块网羈泪。(6)机器数的编码及运算对带符号数而言,有原码、反码、补码之分,计算
6、机内一般使用补码。1) 原码将数“数码化”,原数前“+”用0表示,原数前“-”用1表示,数值部分为该数本身,这样的机器数叫原码。 设X原数;则X原 = X(X 0) X原 = 2n-1 X (X 0),n为字长的位数。 如,+3原 = 00000011B -3原 = 27 - (-3) = 1000,0011B 0有两种表示方法:00000000 +0 , 10000000 -0 原码最大、最小的表示:+127、-128鹅娅尽損鹌惨歷茏鴛賴。 2)反码规定正数的反码等于原码;负数的反码是将原码的数值位各位取反。X反 = X (X 0)X反 =(2n 1)+ X (X 0)如:+4反 = +4原
7、 = 0000,0100 B -4反 = 1111,1011 B反码范围:-128 +127两个0; +0 00000000 B , -0 11111111 B 3) 补码 补码的概念:现在是下午3点,手表停在12点,可正拨3点,也可倒拨9点。即是说-9的操作可用+3来实现,在12点里:3、-9互为补码。 运用补码可使减法变成加法。 规定:正数的补码等于原码。 负数的补码求法:1)反码 + 1 2)公式:X补 = 2n + X (X0) 如:设X = - 0101110 B , 则X原 = 10101110 B 则X补 = X反 + 1 = 11010001 + 00000001 = 1101
8、0010 B 如:+6补 = +6原 = 00000110 B -6补 = 28 + (-6) = 10000000 00000110 = 11111010 B籟丛妈羥为贍偾蛏练淨。位补码的范围 128 +127。0 的个数:只一个,即00000000而10000000 B是-128的补码。原码、反码、补码对照表:表1-2 P10 預頌圣鉉儐歲龈讶骅籴。4)补码的运算当X0时,X补= X反=X原 X补补 = X原X补+ Y补 = X+Y 补 X-Y 补= X+(-Y)补例:已知 X=52 Y=38 求X-Y渗釤呛俨匀谔鱉调硯錦。计算机在做算术运算时,必需检查溢出,以防止发生错误5)运算的溢出问
9、题资料字长(位数)有一定限制,所以资料的表示应有一个范围。如字长8位时; 补码范围-128+127若运算结果超出这个范围,便溢出。铙誅卧泻噦圣骋贶頂廡。错:两个负数相加和为正数。可见:结果正确(无溢出)时,Cs+1 = Cs结果错误(溢出)时,Cs+1 Cs溢出判断:溢出 = Cs+1 Cs(即结果是0为无溢出;1为有溢出)擁締凤袜备訊顎轮烂蔷。(7)BCD码BCD码是Binary Coded Decimal Numbers(二进制编码的十进制数)的缩写。BCD码用四位二进制数的组合来表示1位十进制数。贓熱俣阃歲匱阊邺镓騷。 例如:十进制数23对应的BCD码为16#23,或2#00100011
10、,BCD码常用于输入输出设备,例如拨码开关输入的是BCD码,送给七段显示器的数字也是BCD码。表2 BCD码和十进制数十进制数BCD码00000100012001030011401005010160110701118100091001BCD码的运算:1) BCD码加法规则两个BCD数相加时,“某位”的和小于10则保持不变;两个BCD数相加时,“某位”的和大于9,则和数应加6修正。坛摶乡囂忏蒌鍥铃氈淚。 2)BCD码减法规则 两个BCD数相减时,“某位”的差未发生借位,则差数保持不变; 两个BCD数相减时,“某位”发生了借位,其差应减6修正。这里“某位”指BCD数中的“个位”、“十位”、“百位”
11、、蜡變黲癟報伥铉锚鈰赘。(9)负数的表示方法PLC一般采用二进制补码来表示有符号数,其最高位为符号位,最高位为0时为正数,最高位为1时为负数,最大的16位正数为16#7FFF(即32767)。正数的补码是它的本身,将正数的补码逐位取反(0变为1,1变为0)后加1,得到绝对值与它相同的负数的补码。将负数的补码的各位取反后加1,得到它的绝对值。買鲷鴯譖昙膚遙闫撷凄。例如:十进制正整数35对应的二进制补码为2#00100011,十进制数-35对应的二进制补码为2#11011101。不同数据的取值范围如下表。綾镝鯛駕櫬鹕踪韦辚糴。数据的位数与取值范围数据的位数无符号整数有符号整数十进制十六进制十进制十
12、六进制B(字节),8位值02550FF-128127807FW(字)16位值0655350FFFF-327683276780007FFFD(双字)32位值042949672950FFFFFFFF-2147483648214748364780000007FFFFFFF(10)用1位二进制数表示开关量 二进制数的1位(bit)只有0和1两种不同的取值,可以用来表示开关量的两种不同的状态。如果该位为1,梯形图中对应的元件的线圈“通电”,其常开触点接通,其常闭触点闭合。如果该位为0,则编程元件的线圈和触点的状态与上述相反。驅踬髏彦浃绥譎饴憂锦。(11)位 S7-200 的位存储单元的地址由字节和位地址
13、组成,例如:I 3.2,其中的区域标识符“I”表示输入(Input),字节地址为3,位地址为2。这种存取方式称为“字节。位”寻址方式。猫虿驢绘燈鮒诛髅貺庑。(12)字节8位二进制组成一个字节(Byte)。其中的第0位为最低有效位(LSB),第7位为最高有效位(MSB)。输入字节IB3(B是Byte的缩写)是由I3.0,I3.1,I3.2,I3.3,I3.4,I3.5,I3.6,I3.7 这8位组成。锹籁饗迳琐筆襖鸥娅薔。 VB100MSB LSB構氽頑黉碩饨荠龈话骛。V100.7V100.6V100.5V100.4V100.3V100.2V100.1V100.0(13)字相邻的两个字节组成一个
14、字,VW100是由VB100和VB101组成的一个字,V为区域标识符,W表示字(Word),100为起始字节的地址。注意:VB100是高位字节。輒峄陽檉簖疖網儂號泶。VW100MSB LSB 15 0V100.7-V100.0V101.7-V101.0(14)双字 相邻的4个字节组成一个双字,VD100是由VB100-VB103组成的双字,V为区域标识符,D表示双字(Double Word), 100为起始字节的地址。注意:VB100是高位字节。尧侧閆繭絳闕绚勵蜆贅。VD100MSB LSB31 0VB100VB101VB102VB1032 CPU存储区(1) 输入过程映像寄存器(I)输入过程
15、映像寄存器是PLC接收外部输入的数字量信号的窗口。PLC通过光电偶合器,将外部信号的状态读入并存储在输入过程映象寄存器中,外部输入电路接通时对应的映像寄存器为ON(1状态),反之为OFF(0状态)。输入端可以外接常开触点或常闭触点,也可以接多个组成的串、并联电路。在梯形图中,可以多次使用输入位的常开触点和常闭触点。识饒鎂錕缢灩筧嚌俨淒。(2) 输出过程映像寄存器(Q)在扫描周期尾部,CPU将输出过程映像寄存器的数据传送给输出模块,再由后者驱动外部负载。在梯形图中,每一个输出位的常开触点和常闭触点都可以多次使用。凍鈹鋨劳臘锴痫婦胫籴。(3) 变量存储区(V)变量(Variable)存储器用来在程
16、序执行过程中存放中间结果,或者用来保存与工序或任务有关的数据。(4) 位存储区(M)位存储器类似于继电器控制系统中的中间继电器,用来存储中间控制状态或其它控制信息。虽然名为“位存储区”,但是也可以按字节、字或双字来存取。恥諤銪灭萦欢煬鞏鹜錦。有些编程人员习惯于用M区来作为中间地址,但是S7-200 的M区只有32个字节。如果不够用可以用V存储区来代替M存储区。可以按位、字节、字、双字来存储V区数据。如:V10.1,VB20,VW100,VD200等鯊腎鑰诎褳鉀沩懼統庫。(5) 定时器存储区(T)定时器相当于继电器控制系统中的中间继电器。S7-200 有3种定时器,他们的时间基准分别为1ms,1
17、0ms,100ms。定时器的当前值是16位有符号整数,用于存储定时器累计的时间基准量值(1-32767)。硕癘鄴颃诌攆檸攜驤蔹。(6) 计数器存储区(C)计数器用来累计其计数输入脉冲电平由低到高的次数。CPU提供加计数器、减计数器、加减计数器。计数器的当前值为16位有符号整数,用来存放累计的脉冲数(1-32767)。当计数器的当前值大于或等于设定值时,计数器被置为1。用计数器地址(例如C20)来存取当前值和计数器位。带位操作数的指令存取计数器位,带字操作数的指令存取当前值。阌擻輳嬪諫迁择楨秘騖。(7) 高速计数器(HC) 高速计数器用来累计比CPU的扫描速率更快的事件,计数过程与扫描周期无关。
18、其当前值与设定值为32位有符号整数,当前值为只读数据。(HC2)氬嚕躑竄贸恳彈瀘颔澩。(8) 累加器(AC)累加器是可以像存储器那样使用的读/写单元,例如可以用他来向子程序来传递参数,或从子程序返回参数,以及用来存放计算的中间值。CPU 提供4个32位的累加器(AC0、AC1、AC2、AC3),可以按字节、字、双字来存取累加器中的数据。按字节、字只能存取累加器中的低8位或低16位,按双字存取全部的32位,存取的长度由所用的指令决定。釷鹆資贏車贖孙滅獅赘。例如在指令“MOVW AC2,VW100”中,AC2按字(W)存取。(9) 特殊存储器(SM)特殊存储器用于CPU与用户之间的交换信息,例如:
19、SM0.0一直为1状态。(10) 局部存储器(L) S7-200 有64个字节的局部(Local)存储器,其中60个可以作为暂时存储器,或者给子程序传递参数。如果用梯形图编程,编程软件保留局部存储器的后4个字节。如果用语句表编程,可以使用所有的64个字节。怂阐譜鯪迳導嘯畫長凉。主程序、子程序、中断程序简称为POU(Program Organizational Uint,程序组织单元),个POU都有自己的局部变量表,局部变量只在它被创建的POU中有效。谚辞調担鈧谄动禪泻類。(11) 模拟量输入(AI)S7-200将连续变化的模拟量用A/D转换成一个字长为(16位)的数字量。用区域表示符AI、和表
20、示长度的W和起始字节的地址来表示模拟量输入的地址。因为模拟量输入是一个字长,应从偶数字节地址开始存放。例如:AIW2,AIW4等等,模拟量输入只为只读数据。嘰觐詿缧铴嗫偽純铪锩。(12) 模拟量输出(AQ)S7-200将一个字长的数字用D/A转换成连续变化的模拟量,用区域标示符AQ、表示数据长度的W和字节起始地址来表示存储模拟量输出的地址。因为模拟量输出是一个字长,应从偶数字节开始存放。例如:AQW2、AQW4等等。模拟量输出值是只写数据,用户不能读取模拟量数值。熒绐譏钲鏌觶鷹緇機库。(13) 顺序控制继电器(S)顺序控制继电器(SCR)用于组织设备的顺序操作,与顺序控制继电器指令配合使用。(
21、14) 常数的表示方法和范围常数值可以是字节、字、双字,CPU以二进制方式存储常数,常数也可以用十进制、十六进制、ASCII码或浮点数形式来表示。鶼渍螻偉阅劍鲰腎邏蘞。表3 常数表示方式常数举例十进制常数20047十六进制常数16#4E4FASCII码常数Text实数或浮点数格式235 -1.175E-20二进制格式2#10110101(15) 实数实数(REAL)又称浮点数,可以表示为,其中尾数M和指数E均为二进制数,E可能是正数,也可能为负数。标准格式的32位实数可以表示为浮点数,式中指数e=E+127(1e254)为8位正整数。实数最高位(第31位)为符号数,最高位为0时为整数,为1时为
22、负数。因为规定为数的整数部分总是为1,只保留了尾数的小数部分m(022位)。纣忧蔣氳頑莶驅藥悯骛。浮点数的表示范围是。(16) 字符串的格式ASCII(美国信息交换标准码)是一种字符编码格式,用一个字节中不同的二进制值代表不同的字符。例如字母“A”的ASCII值为十六进制数41H,数字5的ASCII值是35H。颖刍莖蛺饽亿顿裊赔泷。字符串由若干个ASCII码字符组成,每个字符占一个字节。字符串的第一个字节定义了字符串的长度(0-254),即字符的个数。一个字符串的最大长度是255,一个字符串常量的最大长度是128字节。濫驂膽閉驟羥闈詔寢賻。字符串也能包括汉字编码,每个汉字的编码占两个字节。3
23、CPU存储器的范围与特性表:S7-200 CPU存储器的范围与特性描述CPU221CPU222CPU224CPU224XPCPU226输入映像寄存器I0.0I15.7输出映像寄存器Q0.0Q15.7模拟量输入(只读)AIW0AIW30AIW0AIW62模拟量输出(只写)AQW0AQW30AQW0AQW62变量存储器(V)VB0VB2047VB0VB8191VB0VB10239局部变量存储器(L)LB0LB63位存储器(M)M0.0M31.7特殊存储器(SM)SM0.0SM179.7SM0.0SM299.7SM0.0SM549.7特殊存储器(只读)SM0.0SM29.7SM0.0SM29.7SM
24、0.0 SM0.0SM29.7定时器(T)T0 T255计数器(C)C0C255高速计数器(HC)HC0HC5顺序控制继电器S0.0S31.7累加寄存器AC0AC3跳转/标号0255调用/子程序0630127中断子程序0127正负跳变256PID回路07串行通信口端口0端口0,1表 3 S7-200 操作数范围寻址方式CPU221CPU222CPU224CPU224XPCPU226位存取I0.0I15.7 Q0.0Q15.7 M0.0M31.7S0.0S31.7 T0T255 C0C255 L0.0L63.7V0.0V2047.7V0.0V8191.7V0.0V10239.7SM0.0SM16
25、5.7SM0.0SM299.7SM0.0SM549.7字节存取IB0IB15 QB0QB15 MB0MB32SB0SB31 LB0LB63 AC0AC3SMB0165SMB0299SMB0549字存取IW0IW14 QW0QW14 MW0MW30 SW0SW30 T0255 C0255LW0LW62 AC0AC3VW02046VW08190VW010238SMW0164SMW0298SMW0548AIW030AQW030AIW062AQW062双字存取ID012 QD012 MD028SD028 LD060 AC03 HC05VD02044VD08188VD010236SMD0162SMD0296SMD0546
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100