搜档网
当前位置:搜档网 › 自由口通信详细设计

自由口通信详细设计

自由口通信详细设计
自由口通信详细设计

详细设计

1 地址符号的分配

在编写库函数的时候,不能够使用绝对地址进行编程,必须使用符号地址,所以在编写程序之前须定义符号地址,符号地址的定义如下:

表1 自由口库函数符号地址定义

2 错误代码定义

在自由口通信中,当通信出现错误时,根据不同的错误类型,定义了一些错误代码。代码具体如下:

表2 自由口通信错误代码

3 初始化

初始化库函数的主要功能是设置自由口通信的端口、接收信息开始字符、接收信息结束字符、接收信息控制字节、空闲检测时间、发送或接收的最大字符数。为了贴近于实际情况,

在初始化局部变量中添加了3个输入型局部变量。分别用于对通信端口、接收信息开始字符、接收信息结束字符的设置。局部变量表如下:

表3 初始化局部变量定义

4 自由口

在自由口库函数中添加了7个输入型的局部变量和2个输出型的局部变量,局部变量表如下:

表4 自由口局部变量定义

自由口库函数的主要功能是完成数据的发送、接收、对接收到数据信息BCC校验、对BCC校验成功的数据帧进行解码,在程序上对数据的发送、对接收到数据信息BCC校验、对BCC校验成功的数据信息进行解码三个功能是通过顺序控制继电器指令来实现的,当满足条件时,分别调用不同的顺序控制继电器来实现功能。此外,由于库函数没有办法添加中断来检测数据帧的发送完成和接收完成,所以对于接收完成和发送完成是在该程序中通过检测特殊寄存器来实现的,该库函数的主体流程如图1。

图1 自由口库函数主体流程图

4.1 数据发送

所谓数据发送就是要将帧头、站地址、控制码、数据标识、数据域长度、数据域、BCC 校验码、帧尾组合成为一个数据帧发送出去。在该环节中有两个地方需要注意:其一,求取BCC校验码时,需先取站地址开始处存储器里值与一个初值为0的地址符号存储器相异或,将异或所得结果再与下一个存储器相异或,一直到数据域的最后一个存储器,这个过程通过一个循环来实现,由于数据域长度的不确定,所以需要特别注意循环的次数确定;其二,求

取到的BCC校验码在数据发送缓冲区中存放的具体位置,只知道BCC校验码是存放在数据域的后面,但是由于数据域长度的不确定导致了BCC校验码存放的位置的不确定,故确定BCC校验码存放位置也是需要注意的。由口库函数的数据发送流程图如图2:

图2 数据发送流程图

4.2 对应答帧BCC校验

对应答帧BCC校验是为了检测应答帧在数据传输的过程中是否出错,其校验的方法很简单,直接求取接收到的应答帧中站地址、控制码、数据标识、数据域长度、数据域的BCC 校验码,将所得的结果与应答帧中传过来的BCC校验码比较,如果一致,表明数据传输过程中没有出错,如果不一致表明数据传送过程中出现了错误。对于校验发现出错的应答帧,不再对其进行解码,只需主站将错误信息代码通过错误代码存储器指示出来即可,BCC校验的流程图如图3:

图3 BCC校验流程图

4.3 数据解码

数据解码是自由口通信中最为主要的一个部分,数据解码的结果是从应答帧返回的数据帧信息中找出主站需要的信息。在数据解码过程中需要进行一些列的容错判断,比如说:返回的应答帧的站地址是否正确;返回帧的数据标识是否一致;返回帧的数据域长度是否正确等等,只有当所有的信息都正确的情况下,才能将应答帧中数据域的内容取出放入指定地方。数据解码的流程图如图4:

图4 数据解码流程图

网络通信实验报告

网络通信程序设计 实验报告 姓名: 学号: 专业:计算机科学与技术 授课教师:贺刚 完成日期: 2020.5.27

实验一:TCP套接字编程 内容: 1、利用阻塞模型的开发TCP通信客户端程序。 2、在程序中必须处理粘连包和残缺包问题。 3、自定义应用层协议。 4、采用多线程开发技术。 实验代码: 服务器端: #include "iostream.h" #include "initsock.h" #include "vector" using namespace std; CInitSock initSock; // 初始化Winsock库 DWORD WINAPI ThreadProc(LPVOID lpParam); vector sClientVector; int main() { //1 创建套节字 SOCKET sListen = ::socket(AF_INET, SOCK_STREAM, 0); if(sListen == INVALID_SOCKET) { cout<<"Failed socket() "<

S7-200通讯的编程步骤---自由口通讯

PLC 和变频器 频器博客原创(https://www.sodocs.net/doc/8d14241378.html,)
S7通讯的编程步骤-----自由口通讯 S7-200 通讯的编程步骤---自由口通讯
S7-200 自由口通讯是基于 RS485 通讯基础的半双工通讯, 因此, 发送和接收指令不能同时执行。 自由口通讯使用 SMB30(口 0)和 SMB130(口 1)来定义通讯口 的工作模式。SMB30/SMB130 各位的定义如下:
图 1:通讯口工作模式寄存器
使用自有口通讯,SM30.0 和 SM30.1(SM130.0 和 SM130.1=0) 必须分别为 1 和 0。 发送指令(XMT) 一、 发送指令(XMT) 使用 XMT 发送指令可以把存于缓冲区中的数据, 一次发送一个或
1

PLC 和变频器 频器博客原创(https://www.sodocs.net/doc/8d14241378.html,)
多个字节的数据,最多为 255 个。发送完最后一个字符后还可以连接 到一个发送完中断(端口 0 为 9,端口 1 位 26,见下表) 。
图 2:中断事件表
2

PLC 和变频器 频器博客原创(https://www.sodocs.net/doc/8d14241378.html,)
发送缓冲区的格式如下表所示:
图 3:发送缓冲区的格式 说明: T+0:发送信息的字节个数需要提前定义。 T+1~T+255:要发送的数据字节
和 XMT 有关的寄存器:SMB4 的 SM4.5 和 SM4.6。SM4.5=1 时,口 0 发送完毕;SM4.6=1 时,口 1 发送完毕。 由以上可以看出,有两种方法可以检测端口 0 或 1 的数据发送 状态:一种是利用中断,一种是利用寄存器 SMB4 的第 5 位(口 0) 和第 6 位(口 1) 。 接收指令(RCV) 二、 接收指令(RCV) 使用接收指令(RCV)可以从端口 0 或 1 接收一个或多个字节的 数据(最多 255 个) ,并存于数据缓冲区。接收完最后一个字节后可 以连接到一个接收完中断(口 0 是 23,口 1 是 24,见图 2 所示) 。 接收缓冲区的格式如下表所示:
3

计算机网络与通讯实验报告记录

计算机网络与通讯实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

实验名称:RJ-45接口与网卡设置 一.题目 二.实验设备仪器(软件环境) ⒈RJ-45压线钳 ⒉双绞线剥线器 ⒊ RJ-45接头 ⒋双绞线 ⒌网线测试仪 ⒍网卡 三.试验目的 1.掌握使用双绞线作为传输介质的网络连接方法,学会制作RJ45接头。 2.学会测线器的使用方法。 3.学会网卡的安装与设置。 四.试验内容及步骤 1.网线制作 (1)按以下步骤制作网线(直通线): ●抽出一小段线,然后先把外皮剥除一段; ●将双绞线反向缠绕开; ●根据标准排线(注意这里非常重要); ●铰齐线头(注意线头长度); ●插入插头; ●用打线钳夹紧; ●用同样方法制作另一端。 (2)网线的检查、测试 可以使用网线测试仪或万用表测试网线连接逻辑是否正确。网线制作好后,将其两端分别插入网卡和交换机的插口内,开机后对应的指示灯应闪亮。 2.网卡的安装与设置 (1)安装网卡驱动程序 一.将网卡插入计算机主板的插槽内,启动计算机; 二.单击【开始】|【设置】|【控制面板】命令,打开【控制面板】窗口,双击【添加硬件】 图标; 三.弹出【添加硬件向导】,在设备列表中选择所用的网卡设备,插入带有网卡驱动程序的 光盘(或磁盘),按向导提示逐步安装驱动程序; 四.若安装成功,向导会给出正确的提示。

(2)网络协议的添加(此步可略) 一般情况下,安装好网卡的驱动程序以后,最基本的TCP/IP网络协议会自动被添加到系统中。但在某些特殊情况下,需要我们手动添加/删除网络协议: ●单击【开始】|【设置】|【控制面板】命令,打开【控制面板】窗口,双击【网 络连接】图标; ●打开【网络连接】窗口,选中【本地连接】图标,点击右键,在弹出菜单中选 【属性】; ●进入【属性】对话框,选【常规】项,单击【安装】按钮; ●弹出【选择网络组件类型】对话框,在【单击要安装的网络组件类型】列表中 选【协议】,单击【安装】; ●弹出【选择网络协议】对话框,在【网络协议】列表中选择所要的协议,单击 【确定】按钮。 (3)网卡的设置 网卡安装成功后,必须对其进行配置,配置前,必须到网络中心申请到合法的IP地址,并得到网络中心提供的域名及其IP地址、网关的IP地址。 (1)打开【网络连接】中“本地连接”的【属性】窗口; (2)选中【Internet协议(TCP/IP)】,单击【属性】按钮; (3)打开【Internet协议(TCP/IP)属性】窗口,分别设置“IP地址”、“子网掩码”、“默认 网关”、“DNS服务器”等项。 3.网络连通的测试 常用ping命令来测试网络连接,格式: ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list 参数含义 -t 校验与指定计算机的连接,直到用户中断。 -a 将地址解析为计算机名。 -n count 发送由count指定数量的ECHO 报文,默认值为 4。 -l length 发送包含由length 指定数据长度的ECHO报文。 默认值为64字节,最大值为8192 字节。 -f 在包中发送“不分段”标志,该包将不被路由上的 网关分段。 -I ttl 将“生存时间”字段设置为ttl指定的数值。 -v tos 将“服务类型”字段设置为tos指定的数值。 -r count 在“记录路由”字段中记录发出报文和返回报文的 路由。指定的Count值最小可以是1,最大可以是 9 。 -s count 指定由count指定的转发次数的时间邮票。 -j computer-list 经过由computer-list指定的计算机列表的路由报 文。中间网关可能分隔连续的计算机(松散的源路 由)。允许的最大IP地址数目是9。 -k computer-list 经过由computer-list指定的计算机列表的路由报

实现S-SMART自由口通讯

如何实现S-SMART自由口通讯

————————————————————————————————作者:————————————————————————————————日期:

如何实现S7-200SMART自由口通讯 自由口通讯协议的关键条件 定义开始接收消息和停止接收消息的条件。 1、空闲线检测:设置il=1,sc=0,bk=0,smw90/smw190>0 空闲线条件定义为传输线路上的安静或者空闲的时间。SMW90/SMW190中是以ms为单位的空闲时间。在该方式下,从执行接收指令开始起动空闲时间检测。在传输线空闲的时间大于等于SMW90/SMW190中设定的时间之后接收的第一个字符作为新信息的起始字符。接收消息功能将会忽略在空闲时间到达之前接收到的任何字符,并会在每个字符后面重新启动空闲线定时器。 空闲线时间应大于以指定波特率传送一个字符所需要的时间。空闲线时间的典型为以指定的波特率传送3个字符所需要的时间。传输速率为19200bit/s时候,可设置空闲时间为2ms。对于二进制协议,没有特定起始字符的协议或指定了消息之间最小时间间隔的协议,可以将空闲线检测用作开始条件。 2、起始字符检测:设置il=0,sc=1,bk=0,忽略smw90/smw190 起始字符是消息的第一个字符,以SMB88/SMB188中的起始字符作为接收到的消息开始的标志。接收消息功能忽略起始字符之前收到的字符,起始字符和起始字符之后收到的所有字符都存储在消息缓冲区中。起始字符检测一般用于ASCII协议。 3、空闲线和起始字符:设置il=1,sc=1,bk=0,SMW90/SMW190大于0 满足空闲线条件之后,接收消息功能查找指定的起始字符。如果接收到的字符不是 smB88/smb188指定的起始字符,将开始重新检测空闲线条件。在满足空闲线条件之前接收到的以及起始字符之前接收到的字符都将会被忽略。这种方式尤其适合用于通讯链路上有多台设备的情况。 4 、break检测:设置il=0,sc=0,bk=1,检测smw90/smw190和smb88/smb188以接收到的break(断开)作为接收消息的开始。当接收到的数据保持为0的时间大于完整字符(包含起始位,数据位,奇偶校验位和停止位)传输的时间,表示检测到break。断开条件之前接收到的字符将忽略,断开条件之后接收到的任意字符都会存储在消息缓冲区中。 5、break和起始字符:il=0,sc=1,bk=1,忽略smw90/smw190 断开条件满足后,接收消息功能将查找指定的起始字符。如果接收到的字符不是起始字符,将重新搜索断开条件。所有在断开条件满足之前在接收到起始字符之前接收的字符都会忽略。起始字符和所有后续字符一起存入消息缓冲区 6、任何字符开始接受:设置il=1,sc=0,bk=0,smw90/smw190=0 忽略smb88/smb188中的起始字符。应为smw90/smw190中的空闲线时间为0,接收指令已经执行,便将立即开始强制接收所有的任意字符,并将存入消息缓冲区。

如何实现S7-200SMART自由口通讯

如何实现S7-200SMART自由口通讯 自由口通讯协议的关键条件 定义开始接收消息和停止接收消息的条件。 1、空闲线检测:设置il=1,sc=0,bk=0,smw90/smw190>0 空闲线条件定义为传输线路上的安静或者空闲的时间。SMW90/SMW190中是以ms为单位的空闲时间。在该方式下,从执行接收指令开始起动空闲时间检测。在传输线空闲的时间大于等于SMW90/SMW190中设定的时间之后接收的第一个字符作为新信息的起始字符。接收消息功能将会忽略在空闲时间到达之前接收到的任何字符,并会在每个字符后面重新启动空闲线定时器。 空闲线时间应大于以指定波特率传送一个字符所需要的时间。空闲线时间的典型为以指定的波特率传送3个字符所需要的时间。传输速率为19200bit/s时候,可设置空闲时间为2ms。 对于二进制协议,没有特定起始字符的协议或指定了消息之间最小时间间隔的协议,可以将空闲线检测用作开始条件。 2、起始字符检测:设置il=0,sc=1,bk=0,忽略smw90/smw190 起始字符是消息的第一个字符,以SMB88/SMB188中的起始字符作为接收到的消息开始的标志。接收消息功能忽略起始字符之前收到的字符,起始字符和起始字符之后收到的所有字符都存储在消息缓冲区中。起始字符检测一般用于ASCII协议。 3、空闲线和起始字符:设置il=1,sc=1,bk=0,SMW90/SMW190大于0 满足空闲线条件之后,接收消息功能查找指定的起始字符。如果接收到的字符不是smB88/smb188指定的起始字符,将开始重新检测空闲线条件。在满足空闲线条件之前接收到的以及起始字符之前接收到的字符都将会被忽略。这种方式尤其适合用于通讯链路上有多台设备的情况。 4 、break检测:设置il=0,sc=0,bk=1,检测smw90/smw190和smb88/smb188 以接收到的break(断开)作为接收消息的开始。当接收到的数据保持为0的时间大于完整字符(包含起始位,数据位,奇偶校验位和停止位)传输的时间,表示检测到break。断开条件之前接收到的字符将忽略,断开条件之后接收到的任意字符都会存储在消息缓冲区中。 5、break和起始字符:il=0,sc=1,bk=1,忽略smw90/smw190 断开条件满足后,接收消息功能将查找指定的起始字符。如果接收到的字符不是起始字符,将重新搜索断开条件。所有在断开条件满足之前在接收到起始字符之前接收的字符都会忽略。起始字符和所有后续字符一起存入消息缓冲区 6、任何字符开始接受:设置il=1,sc=0,bk=0,smw90/smw190=0

计算机网络技术实验报告

重庆交通大学 学生实验报告 实验课程名称《计算机网络技术》课程实验 开课实验室软件与通信实验中心 学院国际学院年级2012 专业班(1)班 学生姓名吴双彪学号6312260030115 开课时间2014 至2015 学年第二学期 实验2简单的局域网配置与资源共享 实验目的: 1、掌握将两台PC联网的技能与方法 2、掌握将几台PC连接成LAN的技能与方法 3、掌握局域网内资源共享的技能与方法 实验内容和要求: 1、选用百兆交换机连接PC若干台; 2、在上述两种情况下分别为PC配置TCP/IP协议,使他们实现互联和资源共享实验环境:(画出实验网络拓图) 实验步骤: 1、选择两台计算机; 选PC0与PC1. 2、设置两台计算机IP地址为C类内部地址; 两台PC机的IP分别设置为:、202.202.242.47、202.202.243.48; 两台PC机的掩码分别设置为:、255.255.255.0、255.255.255.0; 3、用一台计算机Ping另一台计算机,是否能Ping通?

4、我的电脑→工具→文件夹选项→查看→去掉“使用简单文件共享(推荐)”前 的勾;设置共享文件夹。 5、控制面板→管理工具→本地安全策略→本地策略→安全选项里,把“网络访 问:本地帐户的共享和安全模式”设为“仅来宾-本地用户以来宾的身份验证” (可选,此项设置可去除访问时要求输入密码的对话框,也可视情况设为“经典-本地用户以自己的身份验证”); 6、通过网络邻居或在运行窗口输入“\\对方IP地址”实现资源共享。 1)指定IP地址,连通网络 A.设置IP地址 在保留专用IP地址范围中(192.168.X.X),任选IP地址指定给主机。 注意:同一实验分组的主机IP地址的网络ID应相同 ..。 ..,主机ID应不同 ..,子网掩码需相同B.测试网络连通性 (1)用PING 命令PING 127.0.0.0 –t,检测本机网卡连通性。 解决方法:检查网线是否连接好,或者网卡是否完好 (2)分别“ping”同一实验组的计算机名;“ping”同一实验组的计算机IP地址,并记录结 果。答:能。结果同步骤3 (3)接在同一交换机上的不同实验分组的计算机,从“网上邻居”中能看到吗?能ping通 吗?记录结果。 2) 自动获取IP地址,连通网络 Windows主机能从微软专用B类保留地址(网络ID为169.254)中自动获取IP地址。 A.设置IP地址 把指定IP地址改为“自动获取IP地址”。 B.在DOS命令提示符下键入“ipconfig”,查看本机自动获取的IP地址,并记录结果。 C.测试网络的连通性 1.在“网上邻居”中察看能找到哪些主机,并记录结果。 2.在命令提示符下试试能“ping”通哪些主机,并记录结果。 答:能ping通的主机有KOREYOSHI ,WSB ,ST ,LBO ,CL 。思考并回答 测试两台PC机连通性时有哪些方法? 实验小结:(要求写出实验中的体会)

计算机与通信网络实验报告

计算机与通信网络实验报告 041220111 戴妍 实验一隐终端与暴露终端问题分析 一、实验设定: 基本参数配置:仿真时长100s;随机数种子1;仿真区域2000x2000;节点数4。 节点位置配置:本实验用[1]、[2]、[3] 、[4]共两对节点验证隐终端问题。节点[1]、[2]距离为200m,节点[3]、[4]距离为200m,节点[2]、[3]距离为370m。 业务流配置:业务类型为恒定比特流CBR。[1]给[2]发,发包间隔为0、01s,发包大小为512bytes;[3]给[4]发,发包间隔为0、01s,发包大小为512bytes。 二、实验结果: Node: 1, Layer:AppCbrClient,(0)Server address:2 Node:1,Layer: AppCbrClient,(0)Firstpacket sent a t[s]:0、000000000 Node: 1,Layer:AppCbrClient,(0)Lastpacket sent at [s]:99、990000000 Node:1,Layer:AppCbrClient,(0) Session status:Not closed Node:1, Layer: AppCbrClient,(0)Totalnumber of bytess ent: 5120000 Node: 1,Layer:AppCbrClient,(0) Total number of packets se nt: 10000 Node:1, Layer: AppCbrClient,(0) Throughput (bits per second):409600 Node:2, Layer:AppCbrServer, (0)Clientaddress: 1 Node: 2, Layer:AppCbrServer,(0) Firstpacket received at [s]:0、007438001 Node:2, Layer:AppCbrServer,(0)Last packetreceiveda t[s]:99、999922073

200的自由口通讯说明

自由口通讯概述 S7-200PLC的通讯口支持RS485接口标准。采用正负两根信号线作为传输线路。 工作模式采用串行半双工形式,在任意时刻只允许由一方发送数据,另一方接收数据。 数据传输采用异步方式,传输的单位是字符,收发双方以预先约定的传输速率,在时钟的作用下,传送这个字符中的每一位。 传输速率可以设置为1200、2400、4800、9600、19200、38400、57600、115200。 字符帧格式为一个起始位、7或8个数据位、一个奇/偶校验位或者无校验位、一个停止位。 字符传输从最低位开始,空闲线高电平、起始位低电平、停止位高电平。字符传输时间取决于波特率。 数据发送可以是连续的也可以是断续的。所谓连续的数据发送,是指在一个字符格式的停止位之后,立即发送下一个字符的起始位,之间没有空闲线时间。而断续的数据发送,是指当一个字符帧发送后,总线维持空闲的状态,新字符起始位可以在任意时刻开始发送,即上一个字符的停止位和下一个字符的起始位之间有空闲线状态。 示例:用PLC连续的发送两个字符(16#55和16#EE)(程序如图3和图4),通过示波器测量CPU通讯端口管脚3/8之间的电压,波形如下图1.: 示例说明: 16进制的16#55换算成2进制等于2#01010101,16进制的16#EE换算成2进制等于2#11101110。如图所示,当数据线上没有字符发送时总线处于空闲状态(高电平),当PLC发送第一个字符16#55时,先发送该字符帧的起始位(低电平),

再发送它的8个数据位,依次从数据位的最低位开始发送(分别为1、0、1、0、1、0、1、0),接着发送校验位(高电平或低电平或无)和停止位(高电平)。因为本例中PLC连续的发送两个字符,所以第一个字符帧的停止位结束后便立即发送下一个字符帧的起始位,之间数据线没有空闲状态。假如PLC断续的发送这两个字符,那么当PLC发送完第一个字符帧的停止位后,数据线将维持一段时间空闲状态,再发送下一个字符帧。 字符传输的时间取决于波特率,如果设置波特率为9.6k,那么传输一个字符帧中的一位用时等于1/9600*1000000=104us,如果这个字符帧有11位,那么这个字符帧的传输时间等于11/9600*1000=1.145ms. 通讯口初始化 SMB30(对于端口0)和SMB130(对于端口1)被用于选择波特率和校验类型。SMB30和SMB130可读可写。见下图2. 图2.特殊存储器字节SMB30/SMB130 示例:定义端口0为自由口模式,9600波特率,8位数据位,偶校验,程序如下图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

05-自由口通信详细设计

详细设计 1地址符号的分配 在编写库函数的时候,不能够使用绝对地址进行编程,必须使用符号地址,所以在编写程序之前须定义符号地址,符号地址的定义如下: 表1 自由口库函数符号地址定义

2错误代码定义 在自由口通信中,当通信出现错误时,根据不同的错误类型,定义了一些错误代码。代码具体如下: 表2 自由口通信错误代码 3初始化 初始化库函数的主要功能是设置自由口通信的端口、接收信息开始字符、接收信息结束字符、接收信息控制字节、空闲检测时间、发送或接收的最大字符数。为了贴近于实际情况,

在初始化局部变量中添加了3个输入型局部变量。分别用于对通信端口、接收信息开始字符、接收信息结束字符的设置。局部变量表如下: 表3初始化局部变量定义 4自由口 在自由口库函数中添加了7个输入型的局部变量和2个输出型的局部变量,局部变量表如下: 表4自由口局部变量定义 自由口库函数的主要功能是完成数据的发送、接收、对接收到数据信息BCC校验、对BCC校验成功的数据帧进行解码,在程序上对数据的发送、对接收到数据信息BCC校验、对BCC校验成功的数据信息进行解码三个功能是通过顺序控制继电器指令来实现的,当满足条件时,分别调用不同的顺序控制继电器来实现功能。此外,由于库函数没有办法添加中断来检测数据帧的发送完成和接收完成,所以对于接收完成和发送完成是在该程序中通过检测特殊寄存器来实现的,该库函数的主体流程如图1。

图1自由口库函数主体流程图 4.1数据发送 所谓数据发送就是要将帧头、站地址、控制码、数据标识、数据域长度、数据域、BCC 校验码、帧尾组合成为一个数据帧发送出去。在该环节中有两个地方需要注意:其一,求取BCC校验码时,需先取站地址开始处存储器里值与一个初值为0的地址符号存储器相异或,将异或所得结果再与下一个存储器相异或,一直到数据域的最后一个存储器,这个过程通过一个循环来实现,由于数据域长度的不确定,所以需要特别注意循环的次数确定;其二,求取

通信网络基础实验报告

通信网络基础实验 报告 学号:。。。 姓名:。。。 专业:通信工程 指导老师:孙恩昌 完成时间:2015-12-27

目录 一.实验目的 (3) 二.实验内容 (3) 三.实验原理 (3) 四.实现停等式ARQ实验过程及结果: (5) 五.实现返回n-ARQ实验过程及结果: (7) 六.实现选择重发式ARQ过程及结果: (8) 七.心得体会 (10)

一.实验目的 1.理解数据链路层ARQ协议的基本原理 2.用算法实现四种不同形式的ARQ重传协议:停等式ARQ、返回n-ARQ、选择重发式ARQ和ARPANET ARQ。 3.提高分析和解决问题的能力和提高程序语言的实现能力 二.实验内容: 1.根据停等式ARQ协议基本理论,编写协议算法,进行仿真; 2.根据返回N-ARQ协议基本理论,编写协议算法,进行仿真; 3.根据选择重传ARQ协议基本理论,编写协议算法,进行仿真; 4.根据并行等待ARQ协议基本理论,编写协议算法,进行仿真 三.实验原理 1.停等式ARQ:在开始下一帧传送出去之前,必须确保当前帧已被正确接受。假定A到B的传输链路是正向链路,则B到A的链路称为反向链路。在该链路上A要发送数据帧给B,具体的传送过程如下: 发送端发出一个包后,等待ACK,收到ACK,再发下一个包,没有收

到ACK、超时,重发 重发时,如果ACK 不编号,因重复帧而回复的ACK,可能被错认为对其它帧的确认。 2. 返回n-ARQ:发送方和接收方状态示意图 返回n-ARQ方案的特点如下: (1)发送方连续发送信息帧,而不必等待确认帧的返回; (2)在重发表中保存所发送的每个帧的备份; (3)重发表按先进先出(FIFO)队列规则操作; (4)接收方对每一个正确收到的信息帧返回一个确认帧,每一个确认帧包含一个惟一的序号,随相应的确认帧返回; (5)接收方保存一个接收次序表,包含最后正确收到的信息帧的序号。当发送方收到相应信息帧的确认后,从重发表中删除该信息帧的备份;

S7-200自由口通讯程序

S7-200自由口通讯程序 MAIN:S7200自由口通讯程序 LD SM0.1 CALL SBR_0:SBR0 //初始化子程序 LD SM0.7 = SM30.0 SBR_0:初始化子程序 LD SM0.0 MOVW +2, VW8 //PLC自由口地址,此处每台机器需设不同的地址 LD SM0.0 MOVB 9, SMB30 //通讯参数,波特率9600,自由口通讯 MOVD &VB100, VD40 MOVW +10, VW54 MOVB 12, VB150 MOVB VB9, VB151 MOVD &VB151, VD60 MOVB 6, SMB34 中断间隔6毫秒 ATCH INT_0:INT0, 10 连接定时中断 ATCH INT_1:INT1, 8 连接字符接收中断 ENI INT_0:中断程序入口定时中断 LD SM0.0 DTCH 10 解除定时中断 MOVD VD40, VD46 VB100的地址送VD46 MOVW +10, VW44 MOVW +10, VW54 ATCH INT_2:INT2, 8 //接收中断起用服务程序INT2 INT_1: 延时转向INT0 LD SM0.0 MOVB 5, SMB34 ATCH INT_0:INT0, 10 INT_2: 接受地址,并判断 LDB= SMB2, VB9 //地址和本机相符 MOVW VW8, AC0 累加器 MOVB 255, SMB34 ATCH INT_3:INT3, 8 //起用中断服务INT3,接受包 ATCH INT_5:INT5, 10 //起用延时监控服务INT5 CRETI LDB= SMB2, VB9 //地址和本机不符 NOT ATCH INT_0:INT0, 10 //返回中断入口

西门子自由口通讯

一、串口特性设置 SMB30: ppdb bbmm pp:奇偶校验选择,00=不校验,01=偶校验,10=不校验,11=奇校验; d:每个字符的数据位,0=8位/字符,1=7位/字符; bbb:自由口通讯波特率(bit/s) 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=保留(默认设置为00=PPI/从站模式); 二、报文接收的状态字 SMB86:nre0 0tcp; n=1:通过用户禁止命令终止报文接收。 r=1:接收报文终止,输入参数错误或无起始或结束条件。 e=1:收到结束字符。 c=1:接收报文终止,超出最大字符数。 t=1:接收报文终止,超时。 p=1:接收报文终止,奇偶校验错误。 三、报文接收的控制字 SMB87:报文接收的控制字,en,sc,ec,il c/m,tmr,bk,0; en:0=禁止报文接收,1=允许报文接收,每次执行RCV指令时检查允许/禁止接收报文位。sc:0=忽略SMB188,1=使用SM1B188的值检查报文的开始。 ec:0=忽略SM189,1=使用SM189的值检查报文的结束。 il:0=忽略SMW190,1=使用SMW190的值检测空闲状态。 c/m:0=定时器是字符间超时定时器,1=定时器是报文定时器。 tmr:0=忽略SMW192,1=超过SMW192中设置的时间时终止接收。 bk:0=忽略break(间断)条件,1=用break条件来检测报文的开始。 报文接收控制字节位用来定义识别报文的标准,报文的起始和结束标准均需定义。 SMB88=报文的起始字符 SMB89=报文的结束字符 SMW90=以ms为单位的空闲线时间间隔。空闲线时间结束后接收到的第一个字符是最新报文的起始字符。 SMW92=字符间/报文间定时值(用ms表示),如果超时停止接收报文。 SMW94=接收最大字符数(1-255),即使不用字符数计算来终止报文,这个值也应按希望的最大缓冲区来设置 四、接收指令的参数设置 RCV指令允许选择报文开始和结束的条件,SMB86-SMB94用于端口0,SMB186-SMB194用于端口1。

S7―200自由口通信的原理及学习建议

S7―200自由口通信的原理及学习建议 摘要:本文从S7-200 PLC自由端口通信协议入手,讲述自由端口协议的基本概念、自由端口通信与USS、MODBUS RT的关系;利用自由端口通信数据发送和数据接收的梯形图实例讲述了自由端口的编程方法。自由端口通信的ASCII码和二进制码协议区别,总结了自由端口协议的功能及用途,文章最后作者根据自身经验,提出了学习自由端口协议的几点建议。 关键词:S7-200 PLC自由端口协议ASCII二进制功能用途学习建议 中图分类号:TP336 文献标识码:A 文章编号:1007-9416(2015)04-0037-01 强大而灵活的自由口通信能力,是S7-200系统的一个重要特点。S7-200 PLC的通信端口按照串行485通信总线规范设计,并具备自由通信功能。在自由通信模式下,通信数据的发送、接受协议由编程人员自行规定,但一般都是按照受控设备的支持的通信协议编写自由通信协议。在自由通信协议的平台上,S7-200PLC可以方便的与上位机的第三方软件(组态王、MSG等)、扫描设备、编码器、单片机进行数据交换。USS协议库和MODBUS RTU从站协议库是S7-200

的编程软件固有的通信协议库,这些协议库都使用了自由口通信功能。正确理解S7-200的自由口通讯对于自控人员具有极其重要的意义。 1 自由口通信基本概念 西门子S7-200系列PLC的通讯端口都具备自由口通信功能。所谓自由口协议是指通过用户程序控制CPU主机的通信端口的操作模式来进行通信。只有在PLC处于运行模式时,其通信端口才能工作在自由端口模式。当PLC从RUN 模式切换到STOP模式时,其自由通信协议模式自动关闭,并将通信端口切换到PPI通信模式。 与自由端口通信相关的指令有数据发送指令XMT和数据接收指令RCV。 自由端口的数据发送梯形图程序如图1。在图1中,当EN端为高电平时,PLC的通信端口PROT1就会将VB100及其后的若干字节按一定的比特率发送出去。发送数据的比特率、数据位数、校验位设置、均在特殊寄存器SMB130中设置(如果是端口0,则在SMB30中设置)。每次发送数据的总数最大值为255个字符。 自由端口的数据接收梯形图程序如图2。当EN端获得高电平后,PLC的通行端口PROT1处于接受数据待命状态。一旦有符合设置要求的数据(比特率、数据位数、数据接收起始位等),PLC就将端口的数据依次接受至VB200开始的

网络技术基础实验报告

《网络技术基础》实验报告 姓名:肖婷婷 学号:1230060197

实验1 计算机局域网的硬件连接 本组成员姓名以及学号:日期: 肖婷婷1230060197 蔡凯旋1230060175 估计时间:135分钟 1—1实验目的 1、学习双绞线的使用方法 2、掌握使用双绞线作为传输介质,以集线器为中心设备组件小型局域网的硬件连接方法 3、掌握配置局域网中IP地址的方法 1—2实验设备 1、非屏蔽5类双绞线、水晶头若干、专用压线钳 2、集线器(HUB)1台。 3、测线器 4、微机:3台,能运行windows 2000及以上版本 1--3实验内容 1、了解实验室工作台的布局 2、利用双绞线以及水晶头,按照双绞线的排列顺序做直通线和交叉线 3、掌握测量直通线和交叉线的方法 4、利用作好的双绞线以及集线器通过硬件在本工作台组建局域网 1—4实验原理 1、局域网组件过程中的硬件安装以及连接是相对简单但非常重要的环节,其中涉及到网卡的安装,网线的制作、网络的连接、网络操作系统的安装、站点属性的配置等工作。我们主要对双绞线制作及连接进行操作。 双绞线的传输距离比较短,一般为100米。由于我们实验中采用集线器作为互连设备来组件小型的局域网,即同一工作台上的3台计算机互连,因此选择选用双绞线作为传输介质。 5 类线由4对双绞线组成,分别标识为白橙/橙、白绿/绿、白蓝/蓝、白棕/棕,每种颜色的花色线和纯色线为一对。根据数字信号的编码和导线衰减特性的不同,双绞线的传输速率有所变化,最高可达1000Mbit/s。

2、根据连接方式的不同,双绞线分为直通线和交叉线。如下图所示。用户设备和网络设备之间(如用户计算机的网卡和集线器之间)使用直通双绞线;用户设备和用户设备之间或网络设备和网络设备之间(如集线器的级联,或两台计算机通过双绞线直接连接),需要使用交叉双绞线连接。 1—5实验步骤 1、按照EIA/TIA-568标准排列双绞线电缆线对,每组做3条直通双绞线,3条交叉双绞线。 注意事项:使用压线钳时,要用力,使得水晶头中的金属针能与双绞线电缆中的导线完全接触。 2、使用测线器测量所做电缆是否连通,以及使用测线器区分直通双绞线和交叉双绞线。 直通双绞线测量时的现象: 对应的线亮(11 22 33 44 55 66 77 88 ) 交叉双绞线的测量现象: 对应的线亮(13 26 31 45 54 62 77 88 ) 3、 (1)利用交叉双绞线连接相同两台计算机的网卡,使两台计算机互通信息; (2)利用集线器将3台计算机互连,构成以太网,用直通双绞线,一端连接网卡,一段连接集线器。

西门子S7-200自由口通信心得

西门子S7-200 PLC自由口通信学习摘要 本文以s7-200 PLC与智能电表通信为范例(电表波特率为1200bps,偶校验,8位数据位) 一、PLC自由口协议初始化 1、根据智能设备通信时使用的波特率、校验方式、起始位等参数配置PLC自由口,即将上述参数用MOVB指令写入SMB30,SMB30格式如下图所示: 初始化子程序如下:

二、声明中断 发送数据和接收完数据都能链接到中断程序,发送完中断与接收完中断的中断号分别为9和23,中断可在初始化子程序中声明

三、编写自由口要发送的报文子程序 严格按智能设备报文格式,将相应命令,将指令长度(字节)MOV到任意的字节单元,例如vb10。再用MOV_B或MOV_W等指令传送到vb11开始后连续的字节中。 报文子程序

上图为读取电表标识编码为9010(即正向有功总电能)的指令 四、用XMT指令发送报文 XMT指令需指定两个参数,第一个为要发送的报文的起始地址(本例为VB10),第二个为使用的通信口(本例为0口)。可以用定时器控制某一CPU内部触点来控制报文发送的周期。要注意的是,XMT指令必须用上升沿“—|P|—”触发,否则CPU将会报错,CPU将认为有多个XMT/RCV指令同时执行,这是不允许的! 发送报文子程序 五、利用发送完中断启动接收数据指令 当报文用XMT发送完毕,会产生9号中断。我们可以利用中断子程序捕捉相应的中断,并在中断程序中编写相应事件!在步骤1中已经声明了9号中断连接到中断子程序“发送完中断”。因为此我们在“发送完中断”中断子程序中使用RCV指令即可接收到由通信口返回的数据。即将数据送到VB100. “发送完中断”中断子程序

计算机网络基础课内实验报告

《计算机网络基础》 课内实验 学部:经济与管理学院

专业:市场营销(网络营销) 班级: 学号: 姓名: 指导教师: 唐芳萍 2016年6月21日 实验一用双绞线制作网线(3课时)一、实验目的: 1.了解RJ-45接口标准; 2.理解直通线、交叉线使用场合; 3.掌握双绞线的的两种制作规范、制作步骤; 4.掌握剥线钳、压线钳的使用; 5.掌握双绞线网线连通性的测试方法。 二、实验设备 名称规格数量说明 双绞线>2m 1段/组 水晶头RJ-45 3个/组

压线钳RJ-45 1套/组 三、实验内容和要求 各小组制作直通线、交叉线各一条,长度均为1.5M 。 四、实验结果 1 、根据实际制作结果填写交叉线两端的连线情况。连线是否正确?如不正确,为什么为错?

2 、根据实际制作结果填写直通线两端的连线情况。连线是否正确?如不正确,为什么为错? 3 、描述直通线和交叉线在测试仪上两端指示灯怎样闪亮网线才算制作合格。 直通线:两端测试灯都是1-8顺序显示 交叉线:交叉线1-3,2-6是拧着的,其他顺序,也就是一端显示1另一端显示3,一端显示2另一端显示6。 4 、双绞线中的一对线缆为何要绞在一起,其作用是什么? 双绞线中的线缆为何要成对地绞一起,其作用是:一对线中只有一个根是起信号传输的,另一条是起屏蔽作用的。使信号在远离传输使避免发生错误。

实验二交换机的自动学习功能(3课时)一、实验目的: 1.比较集线器和交换机的本质区别;

2.深入理解交换机的工作原理; 3. 掌握安装和配置网络模拟器软件PacketTracer 的方法。 二、实验条件 1.运行Windows 2008 Server/XP/7/8操作系统的PC; 2.PC上已安装PacketTracer 软件。 二、实验内容 拓扑图如下: ABCD4台主机都是同一个子网的,可以用私有地址分配给每台主机 1.主机配置IP地址后,查看SW的mac-address-table

通信网络基础实验报告实验一

天津理工大学计算机与通信工程学院 通信网络基础实验报告 姓名 学号 专业 班级 日期

实验一通信网络信号仿真 一、实验目的 1、理解不同调制方法的通信网络的物理信号 2、学习MATLAB软件,掌握MATLAB各种函数的使用。 二、实验原理 数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数信道具有带通特性而不能直接传输基带信号。为了使数字信号在带通信道中传输,必须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。这种用数字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。通常使用键控法来实现数字调制,比如对载波的振幅、频率和相位进行键控。 (1)在幅频键控中载波幅度是随调制信号而变化。最简单的幅移键控形式是载波在二进制调制信号1或0的控制下通或断。2ASK信号的产生方法通常有两种:模拟调制和键控法。二进制幅度键控2ASK是利用代表数字信息“0”或“1”的基带矩形脉冲去键控一个连续的载波,使载波时断时续地输出。有载波输出时表示发送“1”,无载波输出时表示发送“0”。 (2) 频率调制的最简单形式是二进制频移键控2FSK。在二进制FSK中使用了两个不同频率的载波信号来传输一个二进制的信息序列。2FSK信号便是符号“1”对应于载频f1,而符号“0”对应于载频f2(与f1不同的另一载频)的已调波形,而且f1与f2之间的改

变是瞬间完成的。 (3) 相移键控PSK是将要经过一条通信信道传输的信息寄寓在载波的相位中。2PSK以载波的相位变化作为参考基准的,当基带信号为0时相位相对于初始相位为0,当基带信号为1时相对于初始相位为180°。 三、实验内容及步骤 1、实验内容 ⑴ASK调制; 调用时输入askdigital([1 0 1 1 0 0 1],1)即可。 ⑵PSK调制; 调用时输入bpskdigital([1 0 1 1 0 0 1 0],1)即可。 ⑶FSK调制; 调用时输入fskdigital([1 0 1 1 0 0 1 0],1,2)即可。 ⑷分析ASK,PSK,FSK调制信号各自的特点。 2、实验步骤 ①自学熟悉MATLAB编程语言 ②用MATLAB编程语言实现ASK,PSK,FSK调制。 ③记录下实验过程中遇到的问题 ④写出实验报告。 四、实验结果与分析 1、ASK调制;

相关主题