现场总线与网络化仪表实验指导书.docx
- 文档编号:7968780
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:47
- 大小:978.99KB
现场总线与网络化仪表实验指导书.docx
《现场总线与网络化仪表实验指导书.docx》由会员分享,可在线阅读,更多相关《现场总线与网络化仪表实验指导书.docx(47页珍藏版)》请在冰豆网上搜索。
现场总线与网络化仪表实验指导书
现场总线与网络化仪表
实验指导书
东北大学秦皇岛分校
前言
《现场总线与网络化仪表》是一门实践性的专业技术课程,因此必须在课堂教学的基础上配合以足够的实践性教学环节,以理论联系实际,使学生深入理解课堂知识,加强学生动手能力和分析问题解决问题的能力。
本实验指导书是《工业网络技术》一书的配套教材。
该实验指导书紧密结合教材内容,以S7-200、CompactLogix等设备作为实验硬件,深入浅出地介绍MODBUS、DeviceNet、DDE等通信的实现;全书共分两部分。
第一部分利用S7-200库指令实现PC机与PLC之间的MODBUS通信,CRC校验的程序编写调试的实现,利用自由口通信方式实现PC机与PLC之间的通信,MODBUS主从站库指令的剖析实现及调试。
第二部分NetLinx三层网络、CompactLogix控制器实现基于DeviceNet网络的远程I/O控制、基于EtherNet/IP的控制器之间对时以及DDE数据通讯。
对于每一个实验都给出了实验目的、实验内容、预习要求、报告要求、实验提示等。
实验提示部分我们仅给出部分文字提示或者实验程序,以作为学生自己编程时参考。
我们主张学生做实验前,充分预习准备,依靠自己在实验前编出的程序,经过实验调试改正程序,得出正确的实验结果。
这样的实验才能真正有收获,才能真正提高分析解决问题的能力。
由于编者水平有限,书中不妥之处或者错误之处在所难免,欢迎大家在使用中提出宝贵意见。
编者
目录
实验须知
1、预习要求
1.实验前认真阅读实验教材中有关内容,明确实验目的、内容和实验任务。
2.每次实验前做好充分的预习,对所需预备知识做到心中有数。
3.实验前应编好程序,并对调试过程、实验结果进行预测。
4.由于前后实验衔接紧密,实验完成后一定要妥善保存、备份,以便后面实验使用。
2、实验要求
1.实验课请勿迟到、缺席。
2.爱护实验设备,保持清洁,不要随意更换设备。
3.认真完成各项实验任务。
4.做硬件实验时,严禁带电操作,即所有的接线、改线及拆线操作均应在不带电的状态下进行。
5.发生事故时应立即切断电源并马上告知实验老师,检查原因,吸取教训。
6.实验完毕后,请整理好实验设备,班级组织同学打扫实验室卫生。
3、报告要求
每次实验后,应提交一份实验报告,报告应包括以下内容:
1.实验名称、实验人姓名、班级学号、实验时间、所用设备号。
2.实验目的、任务。
3.完整的程序流程图。
4.实验调试过程,包括实验过程中遇到的问题及解决办法、实验结果分析等并附上最终的程序清单(带适当的注释)
5.总结实验中的心得体会,提出对实验内容的建议或设想等
实验一CRC校验实验
一实验目的
1.熟悉西门子S7-200编程软件SETP7-Micro/WINSP6的编程和调试方法。
2.掌握CRC校验的原理和在S7-200PLC中的实现方法。
二实验设备
计算机、西门子S7-200PLC、RS485编程下载线。
三实验原理
(一)CRC校验基本原理
校验码的具体生成过程为:
假设被传输的数据流为BYTE[n]BYTE[n-1]....BYTE[1]BYTE[0],将此数据流看成系数为0或1的多项式M(x)。
收发双方约定一个生成多项式G(x)。
本实验中,多项式设为G(x)=X8+X7+X2+1。
在发送端将M(x)所对应的位串左移8位后按模2除法除以G(x)所对应的位串,余数为8位,称为CRC校验码,将CRC校验码附加在被传输的数据流后边,则被传输的带校验码的数据流为BYTE[n]BYTE[n-1]....BYTE[1]BYTE[0]CRC。
在接收端,也进行同样的除法过程,如果接收端的除法结果不为0,则表明数据传输产生了差错,数据接收端自动请求重发,实现纠错。
(二)CRC校验码生成方法和步骤
1.要传输的数据内容和数据字节长度已知。
2.将被传输的数据流左移8位(共n+2个字节),高8位BYTE[n]放入一个长度为8的寄存器中。
3.将寄存器左移1位(寄存器的最低位从下一个字节最高位获得),如果移出位为1,将寄存器中的值与生成多项式G(x)的简记式进行异或运算,运算结果存回寄存器中。
G(x)对应的位串共9位,其最高位总是1,G(x)的简记式为其后8位,为10000101。
如果移出位为0,则仅将寄存器左移1位(寄存器的最低位从下一个字节获得)。
4.重复第3步,直到扩展后的数据流(n+2个字节)全部移入寄存器。
5.寄存器中的值则为CRC校验码。
四实验内容
1.根据CRC校验码生成原理编写一段程序,调试并要求能够实现正确计算出任意长度数据串的CRC校验码。
2.要求用梯形图编程。
五实验步骤
如果同学已经很熟悉西门子S7-200使用的STEP7编程软件的操作,那么可以跳过下面这部份直接编写程序。
介绍STEP7编程软件在编程、调试、监控方面的具体操作方法。
1.硬件连接
PLC使用一根编程电缆与计算机连接。
编程电缆的两个插头有所区别。
标有“PPI”字样的一端与PLC连接,本实验台上S7-200型号为CPU224CN,有两个通讯口,可任选其一。
标有“PC”字样的一端接到计算机的串口,可以是COM1,也可以是COM2。
下图为连接图。
注意:
应在PLC和计算机断电的情况下,连接编程电缆。
2.启动编程软件
连接好编程电缆后,可以启动计算机和PLC。
启动结束可以在计算机桌面上会找到STEP7-Micro/WIN32编程软件的启动图标,用鼠标左键双击图标,进入TEP7-Micro/WIN32编程软件的主界面。
或者从开始菜单找到SIMATIC项进入STEP7-Micro/WIN32V31,再用鼠标左键点击TEP7-Micro/WIN32,进入TEP7-Micro/WIN32编程软件的主界面。
编程软件支持中文,中文界面如图所示。
选择PLC类型
STEP7-Micro/WIN32编程软件的主界面
3.选择CPU类型
所使用的PLC要求与主界画面显示的PLC类型一致。
若不同,用单击鼠标右键点击中文界面的项目1处,如右图所示
PLC类型选择界面
PLC类型选择界面
弹出“类型(T)”按钮。
再用鼠标左键点击“类型(T)”按钮,会出现右图类型选择界面。
通讯测试界面
选择方法一,是打开PLC类型下拉列表框,可以看到所有的S7-200的类型。
找到所使用的CPU(如CPU224,“确认”后即可。
选择方法二,是单击“读取PLC”按钮,由编程软件自动确认CPU的类型。
如果PLC与计算机连接正确、通讯参数设置无误,PLC类型会显示右图的画面中。
若不能正常通讯,会出现“通讯超时。
请检查端口号码、网络地址、波特率和连接的电缆。
”的警告对话框。
应重新检查串口地址号、参数设置是否正确或编程电缆是否完好。
当确认通讯无误后再一次选择CPU类型。
4.检查通讯
当编程软件读取PLC类型出错,首先检查通讯是否正常,可以在画面上点击“通讯”按钮或主界面浏览条上点击“通讯”选项,进入通讯测试对话框。
用鼠标在“双击刷新”位置上双击左键,执行刷新操作,若通讯正常,出现显示PLC类型和地址的画面。
如果通讯失败,则出现通讯失败对话框。
这时应检查计算机的串口地址设置是否正确。
用鼠标左键在图的“PC/PPIcable(PPI)”位置上双击,显示出通讯参数设置对话框。
在通讯参数设置对话框中,单击属性(Properties)按钮,进入参数设置。
需要检查计算机串口地址是否正确,波特率是否正确,PLC通讯口是否正确(这里主要指CPU226有两个口)。
按照上述步骤进行操作后,再检测,直到通讯正常。
如果通讯始终不能正常,请找专业人员进行维修。
5.编写程序
编写和修改控制程序是完成PLC控制任务最基本的工作,下面以参考程序1为例,简单介绍梯形图的编辑方法。
通讯失败界面
为了编制梯形图程序,要打开梯形图编辑器窗口。
从控制程序可以看出,程序中所用的输入元件为位逻辑元件。
在指令树窗口中,单击“BitLogic”按钮,可以展开所有的位逻辑指令。
现在就是要把合适的位逻辑指令元件放置到梯形图中。
向梯形图中放置元件:
有两种方法向梯形图中放置元件。
第一种方法是双击指令树中所需元件。
另一种方法是用鼠标左键选中元件,按住左键,将该元素拖到编程窗口需要安放的位置,松开鼠标即可。
如图(a)
给元件赋值
放置元件以后,在元件的上方的参数处会出现“?
?
.?
”字符,表示应该输入该元件的参数,此例中应输入“I0.0”。
放置梯形图元件
为了安放元件“Q0.0”,在该元件和“Network2”中间,请把光标移至图(b)所示的位置。
矩形光标,再次双击指令树中的“常开”触点,输入参数“Q0.0”,如图(c)所示。
为了实现这两个元件并联的“或”关系,可以把光标放于图(c)中“Q0.0”末端并点击“向上画线按钮”完成连接,如图(d)所示。
将光标移到图(e)所示的位置,重复上述操作,即可完成梯形图的全部输入和输出元件的绘制。
完整的梯形图如图(f)所示。
梯形图的插入、删除、块操作和程序的打开、保存方法与普通字处理软件中的相应操作方法完全一致。
详细操作请参阅有关程序编辑器部分。
6.程序编译与下载
下载结束对话框
(1)程序的编译
完成程序编辑工作后,需要先对程序进行离线编译。
为了对程序进行编译,可以由“菜单栏”的“PLC”子菜单的“编译”和“全编译”选项实现。
也可以在“调试工具栏”中选择“编译”图标和“全编译”图标实现。
工具栏的两个“编译”图标,如下图所示。
选择“编译”图标,编程软件仅对现行修改的程序进行编译,例如:
梯形图除主程序外,还包括一些子程序或中断程序,如果主程序的修改后,选择“编译”图标,则编程软件仅对修改后的主程序进行编译。
若选择“全编译”图标,则编程软件对全部程序进行编译。
编译结束,在输出窗口显示编译结果信息,信息包括错误类型以及所在位置,如果编译无误,可以将程序下载到PLC中运行。
编译和下载
(2)程序的下载
应用STEP7-Micro/WIN32编程软件下载程序主要步骤。
对于新设计的程序,选择工具栏“下载”图标后,编程软件执行下载操作,将“程序块”、“数据块”和“系统块”全部送到PLC中,完成后,显示结束信息,如上图所示。
对于修改后的程序,选择“下载”图标后,先出现下图所示的对话框,允许选择下载内容,当程序比较复杂时,为缩短下载操作时间,可有选择的执行下载操作。
7.程序运行与调试
应用STEP7-Micro/WIN32编程软件调试程序的主要分如下步骤。
下载选项对话框
(1)程序的运行
运行程序前应当将CPU224上的工作方式开关扳到“REM”位置。
这样我们可以通过编程软件,在线控制程序的运行和停止。
程序下载到PLC后,可以运行程序并检查执行结果是否正确。
工具栏中的三角形图标为“运行”图标,矩形图标表示“停止”图标。
单击“运行”图标,PLC将开始运行。
单击“停止”图标,PLC将停止运行。
在控制程序下载到PLC以后,且确认PLC处在运行状态。
按下“启动”按钮I0.0以后,指示灯Q0.0亮。
按下“停止”按钮I0.1指示灯Q0.0灭。
如果运行状态失常,应先排除接线故障。
若问题仍未解决,可使用编程软件的调试功能,根据梯形图的运行状态,检查、修改程序。
停止运行状态图
(2)程序的调试
如果PLC处于运行模式,利用调试工具栏中的程序状态开关可以在程序编辑器窗口打开始显示状态。
如果操作数数值等于1(位打开),布尔指令(触点、线圈)将被显示成彩色块。
并以通讯速度允许的最快速度显示和更新非布尔操作数。
这样就可以在线监视程序执行状态。
启动命令状态图
连续运行状态图
第一张图的状态图表示指示灯处于灭的状态,“I0.0”“Q0.0”均为“0”,所以它们的左边为蓝色线,右边为灰色线,表示电源被切断。
“I0.1”为“常闭”触点,在未按动“停止”按钮的情况下,“常闭”触点是闭合的,所以图中的元素是被点亮的蓝色矩形块。
按下“启动”按钮,图中的“I0.0”元素被点亮,输出“Q0.0”闭合,指示灯开始亮如第二张所示。
松开“启动”按钮,电动机中的“I0.0”元素断电,通过自锁接点“Q0.0”继续向线圈供电,指示灯的运行状态保持不变,如第三张图所示。
当按下“停止”按钮,指示灯开始熄灭。
PLC的运行状态又回第一张图的状态所示。
可以看出,借助于监视画面的帮助,可以迅速找到程序的逻辑错误。
是常用的调试工具。
利用调试工具栏中的图状态开关,可以使用图状态开关处于打开状态,可以连续地更新图的数值。
根据连续变化的数据也可以方便地监视程序运行状态。
关键步骤提示:
1.下载调试。
点击下载成功后,使PLC处于运行状态,点击工具框中的“状态表监控”按钮
,在地址栏中输入需要监控的数据地址,并将格式设置为十六进制。
若需要对某一地址空间赋值,可在新值栏中输入数值,并单击工具栏中的“全部写入”按钮
,新值就被赋予到相应的地址。
2.
六实验结果
1.分析《工业网络技术》P50的CRC校验码计算过程,并与CRC校验码的生成方法和步骤相对应。
2.分析实验指导书给出的CRC-16校验源代码,并与CRC校验码的生成方法和步骤相对应,并将分析结果告知实验教师。
3.写出带有注释的CRC-8校验程序源代码和运行结果。
4.手算出相同的CRC校验码。
7、实验参考程序(CRC-16)
Network1
LDSM0.0
MOVWVW301,VW400//被传输数据高16位送入16位寄存器
MOVW16#8005,VW100//VW100中存入生成多项式
MOVD&VB303,AC1//被传输数据下一个字节的地址存入AC1
MOVB*AC1,VB20//VB303中的被传输数据第3个字节存入VB20
MOVBVB300,VB10//VB300中被传输数据流的字节数送入VB10
Network2
LDSM0.0
FORVW2,1,VW9//外循环次数为被传输数据的字节数VB10
Network3
LDSM0.0
FORVW0,1,8//内循环次数为8位
Network4
LDSM0.0
SHRBV20.7,V401.0,16//将V303.7移入V401.0
Network5
LDSM1.1
XORWVW100,VW400
Network6
LDSM0.0
SLBVB20,1//将VB20左移一位
Network7
NEXT
Network8
LDSM0.0
INCBAC1
MOVB*AC1,VB20
Network9
NEXT
实验二自由口通信实验
一实验目的
1.掌握S7-200的发送指令(XMT)和接收指令(RCV)的使用,包括指令的编程、状态字、控制字和工作原理。
2.掌握发送完成中断和接收完成中断程序的编写,熟悉S7-200编程的中断调用指令。
3.掌握串口调试助手软件的使用。
二实验设备
计算机、西门子S7-200、RS485编程下载线。
三实验原理
(一)自由口通信
S7-200CPU的通信口可以设置为自由口模式,选择自由口模式后,用户程序可以完全控制通信端口的操作,通信协议也完全受用户程序控制。
CPU通信口工作在自由口模式时,就不支持其他通信协议(如PPI),此通信口不能再与编程软件通信。
CPU处于停止模式时,自由口不能工作,编程软件才可以与CPU通信。
自由口通信的核心指令是发送(XMT)和接收(RCV)指令,分别实现数据的发送和接收。
发送指令是把缓冲区的数据通过通信口发送出去;接收指令是从通信口把数据接收到缓冲区里。
发送缓冲区的格式如图所示:
计数
数据
M
E
S
S
A
G
E
数据
信息字符
发送/接收字节个数
缓冲区的起始字节地址存放的是发送或者接收字节的个数,信息字符从首地址的下一个地址开始存放。
(二)发送指令(XMT)和接收指令(RCV)的操作原理
发送指令和接收指令可以在编程软件的指令库——通信指令中调用。
指令的梯形图结构如图所示:
发送/接收指令使用边沿触发,TBL输入缓冲区首地址;PORT输入通信端口号。
发送指令激活后,会把缓冲区数据通过通信口发送出去;接收指令激活后,会进入接收等待状态,如果没有数据进来,会一直保持接收等待状态(监视通信口)。
如果有数据过来,且满足设置的消息起始条件,会进入消息接收状态。
如果满足设置的消息结束条件,则结束消息,然后退出接收状态。
在本实验中,S7-200CPU作为从站,使用PC机作为主站,借助串口调试助手软件向从站发送请求数据。
下面介绍S7-200自由口通信的编程方式:
(1)S7-200CPU作为主站:
1.根据协议内容定义好发送缓冲区;
2.在首次扫描中设置相关通信参数;
3.在首次扫描中连接“接收完成中断”和“发送完成中断”(对应端口0,这两个中断的中断号分别为23和9);
4.启用发送指令(XMT),把缓冲区数据发送出去;
5.在发送完成中断程序里,调用接收指令(RCV)。
(2)S7-200CPU作为从站:
1.在首次扫描中设置相关通信参数;
2.在首次扫描中连接“接收完成中断”和“发送完成中断”;
3.启用接收指令(RCV),等待主站发送过来的请求;
4.在接收完成中断子程序里,组织相应的数据到缓冲区里,调用发送指令(XMT)。
(三)实验用到的状态字和控制字
下面介绍的发送/接收指令的状态字和控制字。
更多详细内容请查看《现代电气控制及PLC应用技术》P296。
(1)通信口参数控制字SMB30/SMB130:
编程过程中,在使用接收指令和发送指令之前,需要对通信口的参数进行设置,来选择通信口的校验方式、波特率、工作模式等,通过SMB30进行设置:
P
P
d
b
b
b
m
M
pp--校验选择:
00=不校验;01=偶校验;10=不校验;11=奇校验
d--每个字符的数据位:
0=每个字符8位;1=每个字符7位
bbb--自由口波特率:
000=38400;001=19200;010=9600;011=4800;100=2400;101=1200;110=115.2K;111=57.6K
mm:
协议选择
00=PPI/从站模式;01=自由口模式;10=PPI/主站模式;11=保留
(2)接收指令的状态字和控制字
在使用接收指令(RCV)时需要对一些系统存储区的字节获取或设置,即接收指令的状态字和控制字。
1、SMB86/SMB186
SMB86/SMB186是接收信息的状态字节,是只读的,在程序中,可以通过获取该状态,来判断接收状态是否完成,SMB86/SMB186的具体状态格式如下:
N
R
e
0
0
t
c
P
n:
1=接收信息功能终止:
用户发送禁止命令
r:
1=接收信息功能终止:
输入参数错误或无起始或结束条件
e:
1=收到结束字符
t:
1=接收信息功能终止:
超时
c:
1=接收信息功能终止:
超出最大字符数
p:
1=接收信息功能终止:
奇偶校验错误
当通信协议包含有结束字符时,可获取SMB86/SMB186的状态,当为16#20时,即e位为1时,可认为接收到结束字符,接收信息成功。
但本实验的通信协议为ModbusRTU模式,无结束字符,可判断SMB86/SMB186是否等于4,即t位等于1。
若t位等于1,可认为接收超时,信息接收结束。
超时的时间在SMW92/SMW192中设置。
2、SMB87/SMB187
SMB87/SMB187是接收信息的控制字节,具体模式为:
En
Sc
Ec
il
c/m
tmr
bk
0
en:
0=禁止接收信息功能;1=允许接收信息功能
sc:
0=忽略SMB88或SMB188(分别对应端口0和端口1,下同);
1=使用SMB88或SMB188的值检测起始信息
ec:
0=忽略SMB89或SMB189;1=使用SMB89或SMB189的值检测结束信息
il:
0=忽略SMW90或SMW190;1=使用SMW90或SMW190值检测空闲状态
c/m:
0=定时器是内部字符定时器;1=定时器是信息定时器
tmr:
0=忽略SMW92或SMW192;
1=当SMW92或SMW192中的定时时间超出时终止接收
bk:
0=忽略中断条件;1=用中断条件作为信息检测的开始
3、其他控制字节的状态如下表示:
SMB88/SMB188
信息的起始字符
SMB89/SMB189
信息的结束字符
SMW90/SMW190
空闲线时间设定,按毫秒设定,空闲线时间溢出后接受的第一个字符是新的信息开始字符,SMB90是最高有效字节,SMB91是最低有效字节
SMW92/SMW192
中间字符/信息定时器溢出值,按毫秒设定,若超出这个时间段,则终止接收信息,SMB92是最高有效字节,SMB93是最低有效字节
SMB94/SMW194
接收的最大字符数(1到255字节)
(四)XMT指令和RCV指令
1.用XMT指令发送数据
用XMT指令可以方便的发送1~255个字符,如果有一个中断服务程序连接到发送结束事件上,在发送完缓冲区的最后一个字符时,会产生一个发送中断(对端口0为中断事件9,对端口1为中断事件26)。
可以通过检测发送完成状态位SM4.5或SM4.6的变化,判断发送是否完成。
如果将字符数设置为0并执行XMT指令,可以产生一个break状态,这个break状态可在线上持续以当前波特率传输16位数据所需要的时间。
发送break的操作与发送其他信息一样,发送break的操作完成时也会产生一个发送中断,SM4.5或SM4.6反映发送操作的当前状态。
2.用RCV指令接收数据
用RCV指令可方便的接收一个或多个字符,最多可达255个字符。
如果有一个中断服务程序连接到接收信息完成事件上,在接收完最后一个字符时,会产生一个接收中断(对端口0为中断事件23,对端口1为中断事件24)。
接收信息状态寄存器SMB86或SMB186反映执行RCV指令的当前状态;当RCV指令未被激活或已被终止时,它们不为0;当接收正在进行时,它们为0。
使用RCV指令时,应为信息接收功能定义个信息起始条件和结束条件。
RCV指令支持的起始条件:
(1)空闲线检测:
il=1,sc=0,bk=0,SMW=90(或SMW=190)>0。
执行RCV指令时,信息接收功能会自动忽略空闲线时间到之前的任何字符并按SMW90(SMW190)中的设定值重新启动空闲线定时器,把空闲线时间到之后的接收到的第一个字符作为接收信息的第一个字符存入信息缓冲区。
空闲线时间应该设置为大于指定波特率下传输一个字符(包括起始位、数据位、校验位和停止位)的时间。
空闲线时间的典型值为指定波特率下传输3个字符的时间。
(2)起始字符检测:
il=0,sc=0,bk=0,忽略SMW90(或SMW190)。
信息接收功能会将SMB88(SMB188)中指定的初始字符作为接收信息的第一个字符,并将起始字符和起始字符之后的所有字符存入信息缓冲区,而自动忽略起始字符之前接收到的字符。
RCV指令支持的结束条件:
(1)结束字符检测:
ec=1,S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现场总线 网络化 仪表 实验 指导书