1、IW0实验思考实验思考题二参考题二参考程序程序1:实验思考题实验思考题二参考程序二参考程序2:实验思考题实验思考题一参考程序:一参考程序:指令符指令符功能功能指令说明指令说明ROUND四舍五入取四舍五入取双双整整见课见课本本229229TRUNC舍去小舍去小数数部分取整部分取整*取整指令:取整指令:三、数据转换类指令三、数据转换类指令VD10=-2345.568VD20=1.999注意:注意:输入为实数类型,输出为双字类型整数输入为实数类型,输出为双字类型整数 *用于转换操作数的类型,主要包括:用于转换操作数的类型,主要包括:v 数制转换数制转换v BCD码转换码转换v ASCII码转换码转换
2、 注意操作数不要超出范围注意操作数不要超出范围指令符指令符B II DIDI R I BDI I数制转换:数制转换:指令符指令符功能功能BCD IBCDBCD码转换为整数码转换为整数I BCD整数转换为整数转换为BCDBCD码码BCD码转换:指令符指令符功能功能操作数操作数ITA整数至整数至ASCIIININ,OUTOUT(8 8字节)字节),FMTFMTDTA双字至双字至ASCIIININ,OUTOUT(1212字节)字节),FMTFMTRTA 实数至实数至ASCIIININ,OUTOUT(由(由FMTFMT确定确定 ),FMTFMTHTAATHASCII码转换:码转换:v将整数字(将整数字
3、(IN)转换成)转换成ASCII字符数组。字符数组。v格式格式FMT指定小数点右侧的转换精确度,以指定小数点右侧的转换精确度,以及是否将小数点显示为逗号还是点号。及是否将小数点显示为逗号还是点号。P187v转换结果置于从转换结果置于从OUT开始的开始的8个连续字节中。个连续字节中。vASCII字符数组总是字符数组总是8个字符。个字符。nnn:0-5FMTIN(VW2)OUTVB10VB11VB12VB13VB14VB15VB16VB17031234512.3450B-12-0,0127.6 运算和数学指令运算和数学指令包括:数学运算指令、逻辑运算指令包括:数学运算指令、逻辑运算指令 特殊继电器
4、标志位特殊继电器标志位:SM1.0 零结果零结果 SM1.1 溢出溢出 SM1.2 负结果负结果 SM1.3 除数为除数为0v16位正整数的格式位正整数的格式:原码原码v16位负整数的格式位负整数的格式:补码补码v32位实数的格式位实数的格式:单精度浮点单精度浮点 1位符号位位符号位+8位指数字段(偏移码)位指数字段(偏移码)+23位尾数(绝对值)位尾数(绝对值)指令符指令符功能功能数据类型数据类型ADD I16位整数加位整数加整数整数ADD DI32位整数加位整数加双整数双整数ADD R小数加小数加实数实数VW10VW12VW14SM1.0SM1.1SM1.2ENO0001001200030
5、201322010001-330-542-87200112000032000保持原来保持原来0100-5-32768保持原来保持原来0100-1-32768保持原来保持原来0100132767保持原来保持原来0100SM1.0 零结果零结果SM1.1 溢出溢出SM1.2 负结果负结果OUT:-32768 32767指令符指令符功能功能数据类型数据类型SUB I16位整数减位整数减整数整数SUB DI32位整数减位整数减双整数双整数SUB R小数减小数减实数实数VW10VW12VW14SM1.0SM1.1SM1.2ENO1001000100120130201-300000011330-54287
6、2000120000-32000保持原来保持原来0100-532767保持原来保持原来0100-232767保持原来保持原来01001-32768保持原来保持原来0100SM1.0 零结果零结果SM1.1 溢出溢出SM1.2 负结果负结果OUT:-32768 32767指令符指令符功能功能数据类型数据类型MUL I16位整数乘位整数乘16位位 16位位=16位位MUL DI32位整数乘位整数乘32位位 32位位=32位位MUL R小数乘小数乘32位小数位小数 32位小数位小数=32位小数位小数MUL乘法乘法16位整数位整数 16位整数位整数=32位整数位整数VW10VW12VW14SM1.0S
7、M1.1SM1.2ENO100001001-215000-3000000112150003000000012-32000保持原来保持原来0100-532767保持原来保持原来0100232767保持原来保持原来01002-32768保持原来保持原来0100OUT:-32768 32767VW10=32767VW12=300,当,当M0.1接通时,接通时,VD14=9830100指令符指令符功能功能数据类型数据类型DIV I16位整数除位整数除16位位 16位位=16位整数,位整数,不保留余数不保留余数DIV DI32位整数除位整数除32位位 32位位=32位整数,位整数,不保留余数不保留余数D
8、IV R小数除小数除32位小数位小数 32位小数位小数=32位小数位小数不保留余数不保留余数DIV除法除法16位整数位整数 16位整数位整数=32位整数位整数,保留余数保留余数使使ENO=0的错误条件的错误条件:0006 间接地址间接地址SM1.1 溢出溢出SM1.3 除数为除数为0特殊继电器标志位特殊继电器标志位:SM1.0 零结果零结果SM1.1 溢出溢出SM1.2 负结果负结果SM1.3 除数为除数为0VW10VW12VW14SM1.0SM1.1SM1.2SM1.3ENO0100010001-3002-150001014200221000000142000保持原来保持原来00010-53
9、2767010001则则 VW14(高(高16位,余数)位,余数)=1 VW16(低(低16位,商)位,商)=4若若 VW10=17 ,VW12=4VD14:余数、商余数、商指令符指令符功能功能备注备注INC B字节加字节加1运算不带符号运算不带符号INC W整数加整数加1运算带符号运算带符号INC DW双整数加双整数加1运算带符号运算带符号VB10VB11SM1.0SM1.1ENO010011200123001 255011001001指令符指令符功能功能备注备注DEC B字节减字节减1运算不带符号运算不带符号DEC W整数减整数减1运算带符号运算带符号DEC DW双整数减双整数减1运算带符
10、号运算带符号VB10VB11SM1.0SM1.1ENO0255010255254001254253001 101010255010指令符指令符功能功能数据类型数据类型SQRT实数实数SIN COS TAN实数实数LN求自然对数求自然对数实数实数EXP求自然指数求自然指数实数实数求求 y=lgX:y-VD108x-VD100lnx-VD104ln10-2.30X1-VD100X2-VD104X3-VD108Y-VD112求求:YXXX321求求 125的立方根、的立方根、5的立方的平方根的立方的平方根?逻辑运算指令:逻辑运算指令:WAND BWAND WWAND DWWOR B WOR WWOR
11、 DWWXOR BWXOR WWXOR DWSM0.1取反指令:取反指令:指令符指令符功能功能NOT逻辑取反逻辑取反INV B字节每位取反字节每位取反INV W字每位取反字每位取反INV DW双字每位取反双字每位取反例例:VW20=89A6,VW21=?LD M0.0MOVW VW20,VW21INVW VW21v补充实验思考题:1.1.判断判断VW10VW10中的整数是否为负数,如是则求其绝中的整数是否为负数,如是则求其绝对值对值。2.2.将将VW20VW20开始的开始的1010个字数据,分别乘个字数据,分别乘10-1910-19,即第,即第1 1个数乘个数乘1010,第,第2 2个数乘个数
12、乘1111,第,第1010个数乘个数乘1919,然后送到然后送到VW400VW400开始的存储区,这开始的存储区,这1010个数据的个数据的相对位置在移动前后不发生变化。相对位置在移动前后不发生变化。在在S7-200中中,有四种程序有四种程序:OS系统程序系统程序 OB1 SBR子程序子程序 INT中断程序中断程序 7.8 程序控制指令程序控制指令 P203o 可执行代码段可执行代码段 主程序主程序 子程序子程序 中断服务程序中断服务程序o 注释注释(不被下载)(不被下载)PLC在每个扫描周期总是由主程序的第一个梯级开始,在每个扫描周期总是由主程序的第一个梯级开始,由上至下、从左到右执行。由上
13、至下、从左到右执行。一、子程序及子程序调用与返回指令一、子程序及子程序调用与返回指令o 子程序概念(子程序概念(SBR N)N取值取值063 是应用程序中的可选组件是应用程序中的可选组件 只有被调用时,才会被执行只有被调用时,才会被执行 采用子程序结构的优点:采用子程序结构的优点:o 子程序调用与返回指令子程序调用与返回指令 指令符指令符功能功能操作数操作数SBR 0调调用子程序用子程序ENENRET从从子程序有子程序有条条件返回件返回,多用多用于子程序于子程序内内部,由判部,由判断条断条件件决决定是否定是否结结束子程序束子程序调调用,或由用,或由软软件自件自动动在在内内部部加到每加到每个个子程序的子程序的结结尾。尾。注意注意:子程序不能使用子程序不能使用END指令指令,也不能调用本身也不能调用本身子程序子程序0子程序子程序1例例1:I0.1主程序主程序o带参数调用子程序带参数调用子程序:局部变量表局部变量表 定义:符号名,变量类型,数据类型定义:符号名,变量类型,数据类型 在调用带参数子程序时,最多可带在调用带参数子程序时,最多可带16个参数个参数 子程序的参数类型:子程序的参数类型:IN,IN/OUT,OUT,TEMP 局部变量的数据类型:局部变量的数据类型:L:局部存储器:局部存储器子程序子程序0主程序主程序Q0.1