习题答案PLC编程及应用第4版课件.docx

上传人:b****7 文档编号:8609804 上传时间:2023-02-01 格式:DOCX 页数:29 大小:153.96KB
下载 相关 举报
习题答案PLC编程及应用第4版课件.docx_第1页
第1页 / 共29页
习题答案PLC编程及应用第4版课件.docx_第2页
第2页 / 共29页
习题答案PLC编程及应用第4版课件.docx_第3页
第3页 / 共29页
习题答案PLC编程及应用第4版课件.docx_第4页
第4页 / 共29页
习题答案PLC编程及应用第4版课件.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

习题答案PLC编程及应用第4版课件.docx

《习题答案PLC编程及应用第4版课件.docx》由会员分享,可在线阅读,更多相关《习题答案PLC编程及应用第4版课件.docx(29页珍藏版)》请在冰豆网上搜索。

习题答案PLC编程及应用第4版课件.docx

习题答案PLC编程及应用第4版课件

3章习题答案

1.填空

1)输出指令(对应于梯形图中的线圈)不能用于过程映像输入寄存器。

2)SMON。

3)每一位BCD码用_4_位二进制数来表示,其取值范围为二进制数2#0000_~2#_1001_。

4)二进制数2#0100000110000101对应的十六进制数是_16#4185_,对应的十进制数是_16773_,绝对值与它相同的负数的补码是2#_1011111001111011_。

5)BCD码2#0100000110000101对应的十进制数是_4185_。

6)接通延时定时器TON的使能(IN)输入电路接通时开始定时,当前值大于等于预设值时其定时器位变为ON,梯形图中其常开触点接通,常闭触点断开。

7)接通延时定时器TON的使能输入电路断开时被复位,复位后梯形图中其常开触点断开,常闭触点接通,当前值等于0。

8)有记忆接通延时定时器TONR的使能输入电路接通时开始定时,使能输入电路断开时,当前值保持不变。

使能输入电路再次接通时继续定时。

必须用复位指令来复位TONR。

9)断开延时定时器TOF的使能输入电路接通时,定时器位立即变为ON,当前值被清零。

使能输入电路断开时,当前值从0开始增大。

当前值等于预设值时,输出位变为OFF,梯形图中其常开触点断开,常闭触点接通,当前值保持不变。

10)若加计数器的计数输入电路CU由断开变为接通、复位输入电路R断开,计数器的当前值加1。

当前值大于等于预设值PV时,梯形图中其常开触点接通,常闭触点断开。

复位输入电路接通时,计数器被复位,复位后其常开触点断开,常闭触点接通,当前值为0。

3.-91

4.16#

5.无符号数。

6.VB20和VB21,VB20

7.VW20和VW22,VB20~VB23,VW22,VB20

8.十进制小数

9.字符的个数

10.32

12.4个,8、16、32位

13.程序组织单元,主程序、子程序、中断程序

14.AIW2

15.VB100的地址,地址指针VD120所指的存储单元中的数

16.在程序中修改操作数的地址,用于间接寻址。

题3-17~3-19的语句表程序

题3-20的答案

21.图3-38中的错误:

I2.1的常开触点不能放在线圈的右边,I0.8中的位地址不能大于7,立即输入触点只能用于输入位I,梯形图中不能出现过程映像输入I的线圈,正向转换触点不能接在左侧电源线上。

题3-22的答案

题3-23的答案

题3-24的答案

题3-25的答案

题3-27的答案

 

4章习题答案

1.填空

1)如果方框指令的EN输入端有能流且执行时无错误,则ENO输出端有能流输出。

2)字符串比较指令的比较条件只有==和<>。

3)主程序调用的子程序最多嵌套_8_层,中断程序调用的子程序_不能_嵌套。

4)VB0的值为2#10110110,循环右移2位然后左移4位为2#11010000。

5)读取实时时钟指令TODR读取的日期和时间的数制为BCD码。

6)执行“JMP2”指令的条件满足时,将不执行该指令和LBL2指令之间的指令。

7)主程序和中断程序的变量表中只有临时变量。

8)S7-200SMART有6个高速计数器,可以设置13种不同的工作模式。

9)HSC0的模式3的时钟脉冲为I,用I控制方向。

2.在MW4小于等于1247时,令M0.1为ON并保持,反之将M0.1复位为OFF。

LDW<=MW4,1247

SM0.1,1

LDW>MW4,1247

RM0.1,1

3.编写程序,将VW10~VW58清零。

EU

FILL0,VW10,25

5.编写程序,将VW0中以0.01Hz为单位的0~99.99Hz的整数格式的频率值,转换为4位BCD码,送给QW0,通过4片译码芯片和七段显示器显示频率值(见图3-6)。

MOVWVW0,QW0

IBCDQW0

6.用I0.0控制接在QB0上的8个彩灯是否移位,每1s移1位。

用I0.1控制左移或右移,首次扫描时将彩灯的初始值设置为十六进制数16#0E(仅Q0.1~Q0.3为ON),设计出梯形图程序。

7.用I1.0控制接在QB0上的8个彩灯是否移位,每1s移1位。

用IB0设置彩灯的初始值,在I1.1的上升沿将IB0的值传送到QB0,设计出梯形图程序。

8.用实时时钟指令设计控制路灯的程序,20:

00时开灯,06:

00时关灯。

TODRVB0//读实时钟,小时值在VB3

LDB>=VB3,16#20//20点~0点(日期、时间值用BCD码表示)

OB

=Q0.0//点亮路灯

9.用实时时钟指令设计控制路灯的程序,在5月1日~10月31日的20:

00开灯,06:

00关灯;在11月1日~下一年4月30号的19:

00开灯,7:

00关灯。

TODRVB0//读实时钟,小时值在VB3,月日在VW1

LDW>=VW1,16#1031

OW

//冬季ON

LDB>=VB3,16#20//20点~6点开灯

OB

//夏季

LDB>=VB3,16#19//19点~7点开灯

OB

//冬季

OLD

 

10.半径(<10000的整数)在VW10中,取圆周率为3.1416。

编写程序,用浮点数运算指令计算圆周长,运算结果四舍五入转换为整数后,存放在VW20中。

ITDVW10,AC1//整数转换为双整数

DTRAC1,AC1//双整数转换为实数

ROUNDAC1,AC1//乘积四舍五入转换为双整数

MOVWAC1,VW20//低16位送VW20

第11题编写语句表程序,实现运算VW2–VW4=VW6。

LD

MOVWVW2,VW6

-IVW4,VW6

12.AIW2中A/D转换得到的数值0~32000正比于温度值0~1200︒C。

在I0.0的上升沿,将AIW2的值转换为对应的温度值存放在VW10中,设计出梯形图程序。

公式:

T=1200*N/32000

LD

MOVWAIW2,AC0

AENO

MUL1200,AC0

AENO

/D27648,AC0

AENO

MOVWAC0,VW10

13.以0.1度为单位的整数格式的角度值在VW0中,在I0.0的上升沿,求出该角度的正弦值,运算结果转换为以

为单位的双整数,存放在VD2中,设计出程序。

LD

EU

LPS

ITDVW0,AC0

AENO

DTRAC0,AC0

AENO

/R10.0,AC0

LRD

*R0.01745329,AC0

AENO

SINAC0,AC0

LPP

*R1000000.0,AC0

AENO

ROUNDAC0,VD2

16.编写程序,用字节逻辑运算指令,将VB0的高4位置为2#1001,低4位不变。

LD

MOVBVB0,LB0

AENO

ANDB16#0F,LB0

AENO

MOVBLB0,VB0

ORB16#90,VB0

17.编写程序,前后两个扫描周期VW4的值不变将M0.2复位,反之将M0.2置位。

LD

MOVWVW4,AC0

AENO

XORWVW6,AC0

AENO

LPS

AW=AC0,0

RM0.2,1

LRD

AW<>AC0,0

SM0.2,1

LPP

MOVWVW4,VW6

18.设计循环程序,求VD20开始连续存放的5个浮点数的平均值。

19.在I0.0的上升沿,用循环程序求VW100~VW108的累加和。

为了防止溢出,将被累加的整数转换为双整数后再累加。

用VD10保存累加和。

20.编写程序,求出VW10~VW28中最大的数,存放在VW30中。

21.用子程序调用编写图5-3中两条运输带的控制程序,分别设置自动程序和手动程序,用I0.4作自动/手动切换开关。

手动时用I0.0和I0.1对应的按钮分别点动控制两条运输带。

主程序自动程序手动程序

22.设计程序,用子程序求圆的面积,输入参数为直径(小于32767的整数),输出量为圆的面积(双整数)。

在I0.0的上升沿调用该子程序,直径为10000mm,运算结果存放在VD10中。

主程序子程序

23.用定时中断,每1s将VW8的值加1,在I0.0的上升沿禁止该定时中断,在I0.2的上升沿重新启用该定时中断。

设计出主程序和中断子程序。

主程序定时中断程序

24.第一次扫描时将VB0清零,用定时中断0,每100ms将VB0加1,VB0等于100时关闭定时中断,并将Q0.0立即置1。

设计出主程序和中断子程序。

主程序定时中断程序

5章习题答案

题3的答案题4的答案题5的答案

题6的答案题7的答案题9的答案

“死机”。

题10的答案题11的答案

题12的答案

 

一、选择题

1.下列那个命令不是显示多个环境变量的C

A.setB.exportC.pwdD.env

2.获取某个环境变量值使用函数A

A.getenvB.putenvC.setenvD.unsetenv

3.文件系统保存在磁盘的B

4.Linux文件系统的根目录的i节点号为C

5.文件描述符的数据类型是B

6.设置文件偏移量的系统调用是C

7.下面那个不是lseek第三个参数的取值C

8.Sync系统调用的功能是A

9.Fsync系统调用的功能是B

10.Fdata系统调用的功能是C

11.可以使用(C)系统调用获得符号链接所引用文件名称

A.linkB.symlinkC.readlinkD.softlink

12.获得工作路径名称的系统调用是A

A.getcwdB.getpwuidC.getgrgidD.getlogin

13.通过文件属性中的uid获得文件拥有者名字的系统调用是B

A.getcwdB.getpwuidC.getgrgidD.getlogin

14.通过文件属性中的gid获得文件所属组名字的系统调用是C

15.根据文件路径来改变文件权限使用系统调用是B

A.chownB.chmodC.fchmodD.fchown

二、填空题

1.关于Linux的版本有两种不同的称呼:

一种是内核版本,一种是发行版本。

2.Vi的三中工作模式:

插入模式、命令模式、末行模式。

3.Gcc生成可执行文件的四个步骤:

预处理、编译、汇编、链接。

4.Makefile用来描述程序或工程中各个文件之间的相互联系

5.make。

命令用来及时makefile文件中的命令

6.库分为静态库和共享库。

7.命令行参数是main。

函数的参数

8.Main函数的参数若有两个参数则第一个参数代表命令行参数个数、第二个参数代表指向各命令行参数字符串的指针数组。

9.Linux中日期时间的表示方法有:

算术类型、结构体类型、字符串类型。

10.使用time函数获得的时间是算术类型、代表自1970年1月1日零时到当前时间的秒数。

11.把算数类型时间表示转换成结构体类型使用()函数localtime。

12.把算数类型时间表示转换成字符串类型使用()函数ctime。

13.Maketime函数把()类型时间表示转换成()类型时间表示结构体、算术。

14.如果一个C程序的入口表示为main(intargc,char*argv[]),编译该程序后的可执行程序为a.out,那么在命令“./a.out–ffoo”后,main中的参数argv[1]指向的字符串是(“-f”)。

15.Linux系统下表示标准输入、标准输出和标准错误输出的文件描述符(符号表示)分别为(STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO),它们的值分别为0、1、2。

16.数字635表示的权限使用字母的方式表示为(rw—wxr-x)、使用符号方式表示为(S_IRUSR|S_IWUSR|S_IWGRP|S_IXGRP|S_IROTH|S_IXOTH)。

17.系统调用open的功能是打开或创建文件。

18.使用open打开文件时有三个标志必须要选择其一,这三个标志是O_RDONLY、O_WRONLY、O_RDWR。

19.文件偏移量代表下一次读或写的位置。

20.将文件偏移量市值为当前偏移处之前的4个字节的维护使用lseek(fd,(-4),(SEEK_CUR))。

21.设置打开文件标志(O_TRUNC),可以截断文件为0,使用系统调用(truncate)可以截断文件或者加长文件。

22.如果umask设置为022,则创建一个新文件夹(数字表示)的权限为(644)、创建一个新目录的权限为(755)。

23.如果umask设置为024,则创建一个新文件夹(数字表示)的权限为(642)、创建一个新目录的权限为(753)。

24.使用系统调用(umask)可以设置和得到文件模式的屏蔽字。

25.创建硬链接使用系统调用(link),创建符号链接使用系统调用(symlink)。

26.获得工作路径名称的系统调用是(getcwd)。

27.可以使用(stat或fstat或lstat)系统调用显示文件属性信息。

28.chmod,chown,utime都可以修改文件i节点信息,其中chmod的功能是(更改文件权限)、chown的功能是(更改文件所有者和所属组)、utime的功能是(更改文件访问时间和修改时间)。

29.若实现将标准输出重定向到文件描述符为6对应的文件上,则应使用语句(dup2(6,1))。

30.系统调用(Unlink)的作用是删除目录项,这里的目录项是指(文件名和文件i节点的对应关系)。

31.打开目录使用(DIR*opendir(constchar*name))系统调用,关闭目录使用(intclosedir(DIR*dir))系统调用,读取目录内容使用(structdirent*readdir(DIR*dir))系统调用。

32.chdir系统调用的功能是(改变当前目录)。

33.创建目录使用(intmkdir(constchar*pathname,mode_tmode))系统调用、删除目录使用(intrmdir(constchar*pathname))系统调用。

三、简答题

1.关于Linux的版本有两种不同的称呼:

一种是内核版本,一种是发行版本。

3.系统调用、库函数的区别和练习

从用户角度观察,系统调用和库函数都以C函数形式出现,提供给用户一种功能实现的接口,需要用户输入指定的参数,调用结束得到指定的返回值。

从实现者角度观察,库函数是在系统调用上层的函数,库函数一般指程序员可以使用的通用函数。

系统调用由两部分组成:

(1)核心函数:

是实现系统调用功能的代码,作为操作系统的核心驻留在内存中,是一种共享代码。

运行在核心态。

(2)接口函数:

是提供给应用程序的API,以库函数的形式存在于Linux的中,该库中存放了所有系统调用的接口函数的目标代码,用汇编语言书写。

其主要功能是把系统调用号,入口参数地址传给相应的核心函数,并使用户态下运行的应用程序陷入核心态。

4.完成如下命令

(1)新建用户tom和用户组student

#useraddtom

#passwdtom

#groupaddstudent

(2)新建文件file

#touchfile

(3)将文件file改名为test,然后将test拷贝到/home

#mvfiletest

#cptest/home

(4)将/home/test文件的拥有着修改为tom,将文件所属组该为student

#chowntom:

student/home/test

5.静态库和共享库的区别

(1)静态库的代码在编译时就已连接到开发人员开发的应用程序中。

(2)共享库只是在程序开始运行时才载入,在编译时,只是简单地指定需要使用的库函数。

(3)静态库文件以.a结尾,共享库文件以.so结尾。

6.Makefile文件的显式规则是什么?

目标文件:

依赖文件列表

更新目标文件使用的命令

7.Linux文件类型主要有哪七类?

常规文件、目录文件、字符设备文件、块设备文件、管道文件、链接文件、套接字文件

8.简述文件、i节点、文件名、目录之间的关系

每个存在磁盘上的文件都由i节点和数据块两部分组成,i节点和文件一一对应,一个i节点可以对应多个文件名,文件名和i节点的对应关系叫做文件的硬链接,文件名和i节点的对应关系保存在目录文件中。

9.什么是文件描述符?

(1)一个非负整数,内核以此来标识一个特定进程正在操作的文件。

(2)012代表三个标准的文件描述符,分别为标准输入、标准输出、标准错误输出

10.使用符号方式表示rwxrwxrwx权限

S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH

11.写出open一下6种打开标志:

只读、只写、读写、追加、文件不存在创建、截断为0

O_RDONLYO_WRONLYO_RDWRO_APPENDO_CREATO_TRUNC

12.读程序,写出执行结果并解释得到该结果的原因

main()

{

intfd1,fd2;

fd1=open(“/etc/passwd”,O_RDONLY);

fd2=open(“/etc/passwd”,O_RDWR);

printf(“fd1=%d,fd2=%d\n”,fd1,fd2);

close(fd1);

close(fd2);

}

结果:

fd1=3fd2=4

原因:

open返回的文件描述符为最小可用的非负整数,012是三个标准的文件描述符默认已经被占用,所以第一个open的返回值为3,第二个open返回的是4。

13.回答stat、fstat、latat三个系统调用的区别

stat根据路径获得文件元数据信息

fstat根据文件描述符获得文件元数据信息

前两者如果遇到符号链接文件则会一直引用至非符号链接文件

lstat获得符号链接文件本身的文件元数据信息

14.dup和dup2的区别和联系

联系:

dup与dup2都用来将新文件描述符指向原来文件描述符指向的打开文件描述。

区别:

dup返回的新文件描述符为最小可用的文件描述符,dup2返回的新文件描述符可以通过第二个参数指定。

15.硬链接和符号链接的区别

(1)命令

ln原文件硬链接文件(不能对目录创建硬链接)

ln–s原文件/目录符号链接文件

(2)是否新增文件:

硬链接不增文件,符号链接增加文件。

(3)删除原文件/目录

硬链接:

对应i节点链接数-1。

符号链接:

符号链接文件失效。

(4)删除链接文件

删除硬链接文件,使对应i节点的链接数-1。

删除符号链接文件,对原文件/目录无任何影响

(5)是否跨文件系统:

硬链接不可以,符号链接可以

16.fork与vfork区别?

(1)fork创建的子进程复制父进程的整个地址空间,vfork不创建这一副本,子进程借用父进程的地址空间,直到其调用exec族函数或终止;

(2)fork创建的子进程和父进程相互独立地运行,而vfork创建子进程后挂起父进程,直到子进程终止或调用exec族函数。

17.阅读以下代码,若execlp调用成功的话,“Done!

”会打印输出吗?

为什么?

#include

intmain()

{

printf(“Runningpswithexeclp\n”);

execlp(“ps”,”ps”,”-af”,0);

printf(“Done!

\n”);

exit(0);

}

不会输出“Done!

”。

原因:

执行execlp(“ps”,”ps”,”-af”,0)调用成功后,当前进程的地址空间被新的程序ps所替代,将执行“ps-af”

18.试写出下列程序段的运行结果,并解释原因

intx=0,inty=0;

voidthread1(void)

{

printf(“Thisispthread1.thesentence1\n”);

y=7;

sleep

(1);

printf(“Thisispthread1.thesentence2\n”);

x=x+y;

}

voidthread2(void)

{

printf(“Thisispthread1.thesentence1\n”);

x=4;

sleep

(1);

printf(“Thisispthread1.thesentence1\n”);

y=8+y;

}

voidmain(void)

{

pthread_tid1,id2;

pthread_create(&id1,NULL,(void*)thread1,NULL);

pthread_create(&id2,NULL,(void*)thread2,NULL);

pthread_join(id1,NULL);

pthread_join(id2,NULL);

printf(“x=%d,y=%d\n”,x,y);

}

答案:

Thisispthread1.thesentense1

Thisispthread2.thesentense1

Thisispthread1.thesentense2

Thisispthread2.thesentense2

x=11,y=15

原因:

(1)线程1先运行,线程2后运行。

线程1执行sleep

(1);后阻塞,线程2继续执行,线程2执行到sleep

(1);时线程2阻塞,线程1阻塞结束继续执行,线程1执行结束后线程继续执行到结束。

(2)线程1和线程2共享进程的数据段,因此共享变量x,y。

19.进程间通信的六种方式是什么?

简述他们的通信原理?

(1)信号:

用于通知接收进程有某种事件发生。

(2)管道:

连接一个进程的输出至另一个进程的输入的一种方法。

(3)信号量:

一个计数器,用来记录对某个资源的使用情况。

(4)共享内存:

允许多个进程访问同一块内存空间。

(5)消息队列:

消息的链表,链表中每个节点包括消息类型和正文两部分。

(6)套接字:

在网络上主机间进程进行通信的方式。

20.PIPE与FIFO的区别与联系

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1