实验十 自由口通信实验

更新时间:2023-06-08 04:15:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西门子S7-200PLC的自由口通信,内含3个实验内容。

实验十 自由口编程实验

一、实验目的

了解PLC通信功能;初步掌握PLC自由口通信编程方法。

二、实验设备

1、THSMS-A型实验装置二台

2、安装了STEP7-Micro/WIN4.0编程软件的计算机一台

3、PC/PPI编程电缆,网络连接器。

4、锁紧导线若干

三、实验内容与步骤

(1)输入以下程序,通过串口调试软件(可从网上下载,下图为某一款软件主界面)或windows超级终端(使用方法附后,如果你的计算机中没有,请找老师或者从网上下载)观察现象。

Network 1 // 网络标题

// 传送:“S7-200你好” 到VW100开始的五个字(十个字节)

LD SM0.1

MOVB 16#09, SMB30 //9600,8,N,1

MOVW 16#5337, VW100 //“S”和“7”的ASCII码

MOVW 16#2D32, VW102 //“-”和“2”的ASCII码

MOVW 16#3030, VW104 //两个“0”的ASCII码

MOVW 16#C4E3, VW106 //“你”字的汉字机内码,产生办法:找到汉字区位码,将区码和位码分别变为16进制,再分别加上A0即得

MOVW 16#BAC3, VW108 //“好”的机内码

MOVB 10, VB99 //缓冲区有10个字节(即“S7-200你好”),缓冲区格式见教材P145图7-22

Network 2

LD SM0.5 //秒脉冲,占空比50%

EU

XMT VB99, 0 //上升沿发送VB99中写明的字节数,从端口0发送

(2)输入以下程序,通过串口调试软件(可从网上下载,下图为某一款软件主界面)或windows超级终端(使用方法附后,如果你的计算机中没有,请找老师或者从网上下载)观察现象。

主程序:

Network 1 // 网络标题

// 网络注释

LD SM0.1

MOVB 9, SMB30

MOVB 1, VB100

MOVB 'A', VB101

Network 2

LD SM0.1

ATCH INT0, 8

ENI

Network 3

LD I0.1

西门子S7-200PLC的自由口通信,内含3个实验内容。

EU

XMT VB100, 0

中断程序:

TITLE=中断程序注释

Network 1 // 网络标题

//SMB2中包含自由端口通信过程中从端口 0 或端口 1 收到的每个字符

LDB= SMB2, 'A'

= Q0.1

程序所用符号表:

拨动PLC开关进入运行状态,此时关闭STEP7软件,启动超级终端,在终端窗口分别输入CHINA123和chinAa123,观察PLC的Q0.1端子的灯亮来灭情况。记录现象,分析原因。

(3)输入以下程序,通过串口调试软件(可从网上下载,下图为某一款软件主界面)或windows超级终端(使用方法附后,如果你的计算机中没有,请找老师或者从网上下载)观察现象。

主程序

网络一

LD SM0.7 //SM0.7表示:PLC进入RUN状态时=1,进入TERM状态时=0

EU //上升沿表示刚进入RUN状态时触发调用子程序SBR_0

O SM0.1 //并联SM0.1表示在第一个扫描周期时也要调用子程序SBR_0

CALL SBR_0:SBR0 //调用语句(无参调用)

网络二:功能是在退出RUN状态时调用子程序SBR_1

LD SM0.7

ED

CALL SBR_1:SBR1

子程序0:

LD SM0.0 //SM0.0为常通

MOVB 16#09, SMB30 //设置自由口通信协议:波特率9600bps,8位数据位,1位停止位,无奇偶校验,无数据流控制

MOVB 250, SMB34 //设置定时中断时间间隔为250ms

MOVB 14, VB100

ATCH INT_0:INT0, 10 //中断连接:将10号事件(定时中断0)与中断程序INT_0连接

ENI //全局开中断

子程序1:

LD SM0.0

MOVB 16#08, SMB30 ///设置PPI通信协议从站模式:波特率9600bps,8位数据位,1位停止位,无奇偶校验,无数据流控制

中断程序0:

LD SM0.0

+D 1, VD200 //VD200加1

西门子S7-200PLC的自由口通信,内含3个实验内容。

DTA VD200, VB101, 0 //将VD200中存储的双字转换为12个ASCII字符存储到VB101开始的12个字节中(见PLC手册“PLC功能指令”节)

XMT VB100, 0 //发送VB100开始的缓冲区内容(缓冲区结构见教材P145图7-22,的第一个字符不会发送出去!)

本程序所用数据块设置情况:

VB100 14 // 每次发送14个字节(12+回车+换行)

VD200 0 //初始化寄存器

VB113 16#0D //超级终端的结束和换行的ACSII

VB114 16#0A

拨动PLC开关进入运行状态,此时关闭STEP7软件,启动超级终端,在终端窗口中观看PLC发送过来的信息,记录现象,分析原因。

四、练习与思考

1、分析教材例7-3和例7-4实现的功能。

2、盘点与端口0发送及接收中断相关的事件,归纳出PLC自由口通信编程要点,写在实验报告后面。

3、S7-200PLC支持哪些通信协议?请重点说出一两种通信协议。S7-200通信模块有哪些?

4、概述SMB30、86、87、88-94的作用(重点是SMB30、86、87、90)。使用自由口协议应使PLC在什么状态情况下有效?简述发送和接收缓冲区的结构。

5、完成教材习题P181之1、2、3、5、6、7(选做2题)

五、报告要求

按规范要求整理出实验报告,写出过程中碰到的问题及处理方法,完成思考与练习题,写出心得体会。

补充知识:超级终端

提醒:在调试单片机系统时,我们常用widows自带的超级终端来做为显示。

西门子S7-200PLC的自由口通信,内含3个实验内容。

通过点击开始→程序→附件→通讯中的超级终端,我们可以打开一个新的

终端。启动命令是:hypertrm.exe,在“运行”中输入以上命令即可执行。

然后设置好名称,选择好端口(如COM1,如下图),波特率(即每秒位数), 数据位(通常选择8位),奇偶校验(一般选择无),停止位,数据流控制( 一般选择无),然后就可以开始使用超级终端了。

用键盘直接在超级终端输入字符,就会通过串口发送出去,

在没有设置回显时,输入的是看不到的。将串口的2脚(即

数据接收端)跟3脚(即数据发送端)连接在一起,再敲键

盘,就会发现按下的键显示在上面了,这样可以用来检测串

口是否工作正常。将单片机的串口通过232电平转换后连接

到PC的串口上,就可以通过超级终端来显示信息和发送命令

了。

超级终端是windows自带的一个串口调试工具,其使用较为

简单,被广泛使用在串口设备的初级调试上。

下面介绍一下一般使用的步骤:

配置连接需要调试串口基本参数,其操作为:

1) 选择菜单“文件”下“属性”菜单项。

2) 配置调试设备所连接串口“连接时使用”

西门子S7-200PLC的自由口通信,内含3个实验内容。

3) 按“配置”按钮进行配置选定串口信息

4) 依次选定每秒位数(波特率)等参数,注意要与PLC程序中设置的自由口通

信协议的参数一致。(比如在PLC程序中有MOVB 16#09,SMB30,则表示波特率9600,数据位8位,无奇偶校验,停止位1位,无数据流控制的自由口通信协议)

5) 确定退出配置

6) 按工具条上“呼叫”按钮连接所调试设备

出现操作界面如下:

西门子S7-200PLC的自由口通信,内含3个实验内容。

此时,既可以在其中向远程设备输入命令,又可以看到远程设备发送回来的信息。 超级终端是一个通用的串行交互软件,很多嵌入式应用的系统有与之交换的相应程序,通过这些程序,可以通过超级终端与嵌入式系统交互,使超级终端成为嵌入式系统的“显示器”。

超级终端的原理

超级终端的原理并不复杂,它是将用户输入随时发向串口(采用TCP协议时是发往网口,这里只说串口的情况),但并不显示输入。它显示的是从串口接收到的字符。所以,嵌入式系统的相应程序应该完成的任务便是:

1、将自己的启动信息、过程信息主动发到运行有超级终端的主机;

2、将接收到的字符返回到主机,同时发送需要,也可以远程管理服务器。

超级终端常用操作

超级终端应用比较简单,和一般的串口软件差不多

1、通过发送0x0C(12)即可实现清屏。有时可能发送一个没有接收正确,连续发送两次0x0C即可保证可靠清屏;将光标退格(注意这并不删除字符):发送0x08(8);将光标右移一个制表符(相当于TAB键):发送0x09(9);将光标移动到行首:发送0x0D(13);

2、将光标移动到同一列的下一行:发送0x0A(10)或0x0B(11);容易理解:通过发送0x0D跟0x0A,就可实现换行功能。

疑难问题解答

1、把超级终端最大化时,那个实际屏幕还是没有变化。

原因:"超级终端"的终端屏幕大小由所使用的字体大小决定。它将自行显示为 24 行,每行为 80 或 132 个字符,字体为所选字体。

解决方案:在超级终端的"查看"菜单上,选择"字体"。如果想要较大的终端屏幕,就选择较大的字体。如果想要较小的终端屏幕,就选择较小的字体。

2、键入的信息没有显示在超级终端上。

原因:终端屏幕显示的信息是来自远程计算机所发送的,而不是已输入到本地计算机上的信息。为了查看所键入的信息,远程计算机必须可反馈输入信息。这可能会在输入信息与终端

西门子S7-200PLC的自由口通信,内含3个实验内容。

屏幕显示信息之间存在时间滞后的问题。

解决方案:请确保与远程计算机正确连接,并且远程计算机可以反馈用户输入信息。

3、ANSI字符不能够正确显示。

原因:未使用终端字体。

解决方案:在超级终端的"查看"菜单上,选择"字体"。单击"终端",然后选择"确定"。

4、连接到远程计算机后,终端屏幕显示无意义信息。

原因:未选择正确的终端仿真类型。

解决方案:在超级终端的"文件"菜单上,选择"属性"。选中"设置"选项卡。在"仿真"下拉框中,选择远程计算机的终端类型。如果远程计算机类型没有在下拉框中列出,则超级终端不支持该类型。

5、不能从终端删除字符。

原因:所连接的远程计算机已经控制了显示在终端屏幕上的字符。远程计算机期望光标能根据已发送到屏幕上的数据而定位到屏幕中的特定位置。如果在本地上改变该屏幕,那么就有可能以主机所不能预料或控制的方式,潜在地中断了您与远程计算机之间交互操作。因此,超级终端不允许从屏幕上删除字符。

解决方案:不能。

6、用CTRL+V不能将数据粘贴到终端屏幕。

原因:如果在该连接属性的"终端键"进行了设置,按 CTRL+V 将会给模拟器发送转义序列。许多主机使用 CTRL+V 来导航它们的系统。

解决方案:可以将该设置更改到"Windows 键"中,然后 CTRL+V 就会正常运作。如要更改,请单击超级终端"文件"菜单中的"属性"。单击"设置"选项卡,然后单击" Windows 键"单选按钮。

要点

使用" Windows 键"设置时,所有的功能键、箭头键和控制键将在本地执行。建议选项为:使用"终端键"设置,然后使用菜单进行粘贴。

本文来源:https://www.bwwdw.com/article/vqd1.html

Top