控制软件认识.docx
- 文档编号:6613840
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:141
- 大小:99.14KB
控制软件认识.docx
《控制软件认识.docx》由会员分享,可在线阅读,更多相关《控制软件认识.docx(141页珍藏版)》请在冰豆网上搜索。
控制软件认识
控制类工程实训
——基本软件的认知
实验指导书
李敏王恒编著
自动化学院基础实验中心
目录
第一部分认识MATLAB及编程……………………………………..3
第二部分单片机开发与仿真软件KeilC51的使用………………….12
第三部分LabWindows/CVI基础与入门……………………………..25
第四部分PLC开发软件RSLOGIX500的使用………………………31
第一部分认识MATLAB及编程
1.MATLAB的概况
MATLAB是矩阵实验室(MatrixLaboratory)之意。
除具备卓越的数值计
算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时
控制等功能。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形
式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事
情简捷得多。
时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合
多学科,多种工作平台的功能强大大大型软件。
在国外,MATLAB已经经受了
多年考验。
在欧美等高校,MATLAB已经成为线性代数,自动控制理论,数理
统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;
成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。
在设
计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。
在国内,特别是工程界,MATLAB一定会盛行起来。
可以说,无论你从事工程
方面的哪个学科,都能在MATLAB里找到合适的功能。
时间版本
19851.0
19862.0(含控制系统工具箱)
19883.9
19934.0(含Simulink1.0)
19944.2(含simulink2.0)
19964.3
19995.3
20006.0(含Simulink4.0)
20016.1(含Simulink4.1)
不详6.21
20036.5
MATLAB的发展进程
2.MATLAB的启动与运行
..工作空间窗口
..当前目录窗口
..命令历史窗口
..命令窗口
在命令窗口可直接输入运算程序进行运算。
例1输入一个矩阵a,求它的转置a1。
a=[123;456;789]
a=
123
456
789
>>a1=a'
a1=
147
258
369
有关工作空间的一些命令操作
命令说明
Clc翻过一页命令窗,光标回到屏幕左上角
Clear从工作空间清除所有变量
Clf清除图形窗口内容
Clearall从工作空间清除所有变量和函数
Delete<文件名>从磁盘中删除指定文件
Who列出当前工作空间中的变量
Whos列出当前工作空间中的变量及信息
Which<文件名>查找指定文件的路径
What列出当前目录下的m文件和mat文件
Demo例子演示窗口
Help<文件名>查询所列命令的帮助信息
more命令窗分布输出
Saveneame保存工作空间变量到文件neame.mat
Saveneamexy保存工作空间变量x、y到文件neame.mat
Loadneame装载neame文件中的所有变量到工作空间
Loadneamexy装载neame文件中的变量x、y到工作空间
Diaryneame.m
Diaryoff
保存工作空间一段文本到文件neame.m
Typeneame.m在工作空间查看neame.m文件内容
3.数据格式
单击File—Preferences—打开参数设置对话框,其中数据格式选项说明如下:
数据格式解释例a=1/3
Short短格式0.3333
Long长格式
0.33333333333333
Hex十六进制
3fd5555555555555
Bank金融格式0.33
Plus+格式+
ShortE短指数格式3.3333e-001
LongE长指数格式
3.333333333333333e-001
ShortG短紧缩格式0.33333
LongG长紧缩格式
0.333333333333333
Rational有理格式1/3
Loose稀疏格式0.3333
数据格式也可在命令窗口直接用命令设置。
格式为:
format<数据格式名>。
如
formatrational
4.注释与标点
(1)百分号后的所有文字为注释,不参与运算。
例2symsxy%定义符号变量x,y
(2)多条命令可以放在同一行,用逗号或分号隔开,逗号表示要显示该语句运
行结果,分号表示不显示运行结果。
例3x=[2,3];y=[4,5];z1=x+y,z2=x'*y
z1=
68
z2=
810
1215
(3)一条语句也可以写在多行,用三个点表示该语句未完,续在下一行。
例4f=3*x^6+4*x^5-8*x^4+...
7*x^3+8*x^2-3*x+35
注意:
变量名不能被两行分割,注释语句不能续行。
5.编程及运行方法
编程一般在M文件编辑器的窗口中进行,编辑后保存为*.m文件。
运行整
个程序可在工作空间键入保存的文件名,回车即可运行。
如要运行部分程序段,
可在编辑器中将要运行的程序段选定,按F9键,回到工作空间可看到运行结果。
修改程序时打开已有的m文件进行修改即可。
例5:
adddemo.m里有如下程序段
a=3;
b=4;
c=a+b
6.条件语句
(1)单条件语句
格式1:
if
end
格式2:
if
else
end
例5当从键盘输入自变量x的值,由如下分段函数给出y的值。
..
...
≤
<
=
5,0
0
2
3
xx
xx
y
程序如下:
x=input('x=')%屏幕提示x=,由键盘输入值赋给x
ifx<0
y=x^3
else
y=5*x^2
end
(2)多条件语句
格式:
if
elseif
……
end
例6Adddemo.m程序段如下:
a=3;
b=4;
c=a+b;
ifc<0
c=-1
elseifc<10
c=0
elsec=1
end
7.循环语句
(1)for-end循环
格式:
for循环变量=初值:
步长:
终值
循环体语句组
end
例7编程生成一个6阶矩阵,使其主对角线上元素皆为1,与主对角线相邻元
素皆为2,其余元素皆为0。
程序如下:
n=6;
fori=1:
n
forj=1:
n
ifi==j%判断行标列标是否相等
a(i,j)=1;%给a矩阵第i行第j列的元素赋值1
elseifabs(i-j)==1%判断i-j的绝对值是否为1
a(i,j)=2;
else
a(i,j)=0;
end
end
end
a
(2)while-end循环
格式:
while逻辑表达式
循环体语句组
end
例8求自然数前n项和,项数n由键盘输入。
程序如下:
n=input('n=')
sum=0;k=1;%给和与循环变量赋初值
whilek<=n
sum=sum+k;
k=k+1;
end
sum%输出最后的结果
一些常用函数列表
序号命令说明
1Break终止for循环或while循环
2Error显示错误信息并终止程序执行
3End结束for,while,if或switch结构
4Sign符号函数
5CaseSwitch结构的替代标识符
6Switch依据条件值执行不同语句
7While无限次执行语句
8For按指定次数执行语句
8.关系与逻辑运算
(1)关系运算
在关系运算与逻辑运算中,非零数为真,零值为假。
在输出时对于真值输出
为1,假值为0。
关系运算表:
关系操作符对应函数说明
==Eq(a,b)等于
~=Ne(a,b)不等于
>Gt(a,b)大于 <=Le(a,b)小于等于 >=Ge(a,b)大于等于 例9对向量a、b进行操作 a=[345678]; b=[246795]; c=eq(a,b) d=ne(a,b) e=lt(a,b) 运行结果: c=010000 d=101111 e=001110 例10a=4; b=[23456]; c=eq(a,b) d=a>b e=a<=b 运行结果: c= 00100 d= 11000 e= 00111 注释: 所比较的两个量可以是大小相同的数组或矩阵,运算后返回同样大小的数组 或矩阵。 也可以一个是数组,一个是标量,运算后返回运行结果与数组或矩阵的 大小相同。 两个不同大小的数组或矩阵不能进行比较。 用关系运算符或用对应的 函数其效果相同。 (2)逻辑运算 逻辑运算表 逻辑操作 符 对应函数说明 &and(a,b)逻辑与 |or(a,b)逻辑或 ~not(a,b)逻辑非 xor(a,b)逻辑异或 any(a,b)A中某列有元素非零时此列返回1 all(a)A中某列所有元素非零时此列返回1 例11a=[120;040]b=[320;000] c=and(a,b) c= 110 000 e=a|b e= 110 010 d=~a d= 001 101 w=xor(a,b) w= 000 010 h=any(a) h= 110 k=all(a) k= 010 13实例演示 例12画曲线y=sinx,x∈(0,2π) x=0: 0.1: 2*pi;%0.1为步长取点 y=sin(x); plot(x,y) 例13画出参数方程x=sin3cost,y=sin3tsint在[0,π]上的图形。 symst%定义符合变量t ezplot(sin(3*t)*cos(t),sin(3*t)*sin(t),[0,pi]) 注: ezplot(x,y,[a,b])表示在给定区间a 函数图形。 例14编写程序,生成杨辉三角(打印前10行) a=ones(10);%生成10阶元素为1的方阵 a1=tril(a);%取a的下三角元素构成矩阵a1 fori=3: 10 forj=2: i-1 a1(i,j)=a1(i-1,j-1)+a1(i-1,j); end end fori=1: 10 disp(a1(i,1: i));%显示第i行第1到i列的元素 end 例15求ΣΣΣ === ++ 10 1 50 1 2 100 1 1 kkkk kk k=1: 100;%生成从1到100,步长为1的向量k x1=k x2=k(1: 50).*k(1: 50) x3=1./k(1: 10) y=sum(x1)+sum(x2)+sum(x3) 例16输入任意2个以上的数构成向量a,并将a中的元素按从小到大的顺序排 列 a=input('enterthevectora: ');%输入向量a,输入向量一定要加方括 号 sort(a) 第二部分单片机开发与仿真软件KeilC51的使用 一、KeilC51操作入门 1.1KeilC51简介 KeilC51是德国知名软件公司Keil(现已并入ARM公司)开发的基于8051内核的微 控制器软件开发平台,是目前开发8051内核单片机的主流工具。 Keil51支持汇编语言、C 语言等各种开发语言。 其中,uVision2集成开发环境包含项目管理、源代码编辑和强大的 程序调试环境。 uVision2调试器是一个强大的全特性调试器,允许用户在PC机上完全模拟 目标程序、指令集和片内外围功能。 实验所用的是KeilC51V7.09评估版。 1.2KeilC51的启动 双击桌面上的“KeiluVision2”图标,启动KeilC51程序,启动界面如图1所示。 图1KeilC51的启动界面 1.3建立第1个KeilC51程序 KeilC51是一个功能很强大的软件,但是使用起来并不复杂。 现在就通过 建立一个简单的LED(发光二极管)闪烁发光的实例来初步掌握KeilC51的基本 用法。 硬件电路参见图2,单片机I/O输出低电平可点亮LED。 图2LED闪烁发光电路 ●新建工程。 执行KeilC51软件的菜单“Project|NewProject…”,弹出一个名为 “CreateNewProject”的对话框。 先选择一个合适的文件夹准备来存放工程文 件,比如“E: \Project\LedFlash”,其中“LedFlash”是新建的文件夹。 建议: 今后 每新建一个工程都要在适当的磁盘位置新建一个文件夹用来保存工程文件, 以方便管理,并养成良好的习惯。 最后,为工程取名为“LedFlash”,并保存。 参见图3。 图3新建KeilC51工程 ●选择CPU。 紧接着,KeilC51提示选择CPU器件。 8051内核单片机最早是 由鼎鼎大名的Intel公司发明的,后来其他厂商如Philips、Atmel、Winbond 等先后推出其兼容产品,并在8051的基础上扩展了许多增强功能。 在这里 可以选择Philips的第1个器件“80/87C51”,该器件与Intel的8051完全兼 容。 参见图4。 图4选择CPU ●接下来弹出一个如图5所示的对话框。 该对话框提示是否要把标准8051的 启动代码添加到工程中去。 KeilC51既支持C语言编程也支持汇编语言编程。 如果打算用汇编语言写程序,则应当选择“否(N)”。 如果打算用C语言写程序, 一般也选择“否(N)”,但是,如果用到了某些增强功能需要初始化配置时,则 可以选择“是(Y)”。 在这里,我们选择“否(N)”,即不添加启动代码。 图5选择是否要添加启动代码 至此,一个空的KeilC51工程建立完毕。 ●执行菜单“File|New…”,出现一个名为“Textn”(其中n表示序号)的文档。 ●接着执行菜单“File|Save”,弹出一个名为“SaveAs”的对话框。 将文件名改为 “main.c”,然后保存,参见图6。 注意: 扩展名“.c”不可省略。 图6保存新建的源程序文件 ●添加源程序文件到工程中。 现在,一个空的源程序文件“main.c”已经建立, 但是这个文件与刚才新建的工程之间并没有什么内在联系。 我们需要把它添 加到工程中去。 单击KeilC51软件左边项目工作窗口“Target1”上的“+”,将 其展开。 然后右击“SourceGroup1”文件夹,会弹出如图7所示的选择菜单。 单击其中的“AddFilestoGroup'SourceGroup1'”项,将弹出如图8所示的对 话框。 ●先选择文件类型为“CSourcefile(*.c)”,这时,对话框内将出现刚才保存 过的“main.c”。 单击文件“main.c”,再按一次“Add”按钮(请不要多次点击“Add” 按钮),最后按“Close”按钮。 这时,源程序文件“main.c”已经出现在项目工 作窗口的“SourceGroup1”文件夹内,可以单击左边的“+”展开后查看。 图7准备添加源程序文件到工程中 图8向工程中添加源程序文件 ●现在开始输入源程序。 先最大化“main.c”源程序窗口,然后请按以下程序 清单输入程序代码。 程序清单: LED闪烁发光程序main.c /****************************************************************************** ** 程序名称: LED闪烁发光 硬件接法: P1.1控制LED,低电平点亮 运行效果: LED亮200ms,灭800ms,反复循环 ******************************************************************************* / #include sbitLED=P1^1;//定义I/O接口 /****************************************************************************** * 函数: Delay() 功能: 延时0.01s~2.56s 参数: t>0时,延时(t*0.01)s t=0时,延时2.56s 说明: 定时10ms的定时器初值=65536-0.01/(1/(f/12)),其中f为晶振频率 ******************************************************************************* / voidDelay(unsignedchart) { do { TH0=0xDC;//设置定时器初值(定时10ms) TL0=0x00; TR0=1;//启动定时器 while(! TF0);//等待定时器溢出 TR0=0;//停止定时器 TF0=0;//清除溢出标志 }while(--t! =0);//循环t次 } //主函数voidmain() { TMOD&=0xF0;//T0设置在方式1,即16位定时器(不影响T1的模式) TMOD|=0x01; for(;;) { LED=0;//点亮LED Delay(20);//延时200ms LED=1;//熄灭LED Delay(80);//延时800ms } } ●单击KeilC51工具栏的“”图标,弹出名为“OptionsforTarget‘Target 1’”的对话框。 单击“Output”标签页,选中“CreateHEXFile”项,然后“确定”。 参 见图9。 图9编译环境设置 ●单击工具栏的按钮“”编译当前源程序。 编译结果会显示在输出窗口 内。 如果是“0Error(s),0Warning(s).”就表示程序没有问题了(至少是在语 法上不存在问题了)。 如果存在错误或警告,则仔细检查程序是否与程序 清单一致。 修改后,再编译,直到通过为止。 ●编译后的结果会生成IntelHEX格式的程序文件“LedFlash.hex”。 该文件 可以被专门的芯片烧写工具载入并最终烧录到具体的芯片中。 芯片安装到 自己的电路板上,通电,就可以运行里面的程序了。 还有一类叫做“ISP” (InSystemProgramming)的下载方法,也能够把程序文件烧录到芯片 内,但是采用的是串行在线方式,芯片不必从电路板上取下。 ISP方式编 程速度较慢但操作要方便些。 Philips的多款8051内核单片机都能很好的 支持ISP下载功能,比如P89V51RB2、P89V51RD2等等。 1.4新建A51汇编工程 KeilC51软件也支持A51汇编编程。 建立A51工程的操作步骤与建立C51工 程基本相同,但有两个要点请注意: ●新建的源程序文件名要以”.A51”或“.ASM”作为后缀。 ●A51源程序添加到工程中时,文件类型要选择“AsmSourcefile(*.s*; *.src;*.a*)”。 其它操作步骤都跟建立C51工程相同。 二、在KeilC51下调试程序 KeilC51的调试功能非常强大,现在仍然以LED闪烁发光程序为例,来具 体了解如何进行仿真操作。 2.1进入仿真状态 如果程序编译通过,就可以仿真了。 在仿真之前,有一项参数最好配 置一下,仍然按“”图标进入编译环境设置,找到“Xtal(MHz)”项,填入 11.0592。 最后点击“确定”。 进入仿真状态很简单,直接点击工具栏红色的 “”图标。 2.2认识各个仿真窗口 图10KeilC51源程序窗口 1.源程序窗口 KeilC51调试界面的中间是源程序窗口,参见图10。 黄色箭头“”所指为当前即将 执行但还没有执行的代码。 以深灰色标记的程序行是可以执行的代码(当然,在调试过程中 未必一定要去执行)。 以浅灰色标记的程序行不可作为代码来执行,它们是注释、空行、标 号或ROM数据表。 以绿色标记的程序行表示曾经执行过的代码。 2.寄存器窗口 图11KeilC51寄存器窗口 KeilC51调试界面的左边是寄存器窗口,参见图11。 8051的工作寄存器 (R0~R7)和系统寄存器(a、b、sp、dptr、PC、psw)都列出来了。 Value栏 显示的是寄存器的当前数值。 如果在调试过程中某个寄存器的值有变化,则会 用蓝色的背景标记。 单击psw寄存器左边的“+”,展开后还可以看到其每一位 的情况。 3.汇编窗口 单击工具栏的“”图标,源程序窗口会自动切换成汇编窗口,参见图12。 在汇编窗口 里,我们可以看到每条指令的存储地址和编码等信息。 再次单击“”,回到源程序窗口。 4.存储器窗口 单击工具栏的“”图标,将显示出存储器窗口,参见图13。 8051单片机的 存储器分为多个不同的逻辑空间。 如果要观察代码存储器的内容,就在地址栏 “Address: ”内输入“C: 地址”,例如: C: 0080H。 同理,观察内部数据存储器输 入“I: 地址”,观察外部数据存储器输入“X: 地址”。 拖动存储器窗口右边的滚动条 可观察其它存储单元。 存储器窗口有“Memory#1~Memory#4”共4个观察子 窗,可以用来分别观察代码存储器、内部数据存储器和外部数据存储器。 存储 器的内容是可以修改的。 用鼠标右击打算要修改的存储单元,选择“Modify Memoryat…”项,弹出修改对话框,可以随意修改存储单元的内容。 图12KeilC51汇编窗口 图13KeilC51存储器窗口 图14KeilC51变量观察和堆栈窗口 5、变量观察和堆栈窗口 单击工具栏的“”图标,将显示变量观察和堆栈窗口(Watch&CallStack Window),参见图14。 在Locals标签页,会自动显示局部变量的名称和数值。 在C语言程序的函 数中,每一对花括号“{}”内定义变量都是局部变量,能够自动显示。 在“Watch”标
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 控制 软件 认识