05-自由口通信详细设计

合集下载

自由口通讯案例

自由口通讯案例

自由口通讯案例自由口通讯是指通过语音、视频和文字等多种方式进行沟通和交流的一种通讯方式。

它突破了时间和空间的限制,让人们可以随时随地与他人进行沟通,极大地方便了人们的生活和工作。

下面是一些自由口通讯的案例。

1. 商务会议:以前,商务会议需要与会人员亲自到达会议地点进行面对面的交流。

但现在,借助自由口通讯技术,参会人员可以通过视频会议进行虚拟的会面,无需花费时间和费用进行长途旅行,大大提高了工作效率。

2. 远程教育:自由口通讯为远程教育提供了良好的支持。

学生可以通过网络与教师进行实时的语音和视频交流,解决问题和进行讨论。

这种方式不仅节省了学生的时间和交通费用,还使得教育资源更加平等和公平。

3. 家庭联系:自由口通讯让人们能够随时与远方的亲朋好友进行联系。

无论是通过语音通话、视频聊天还是文字消息,都可以让人们感受到亲人的关怀和陪伴,缩短了彼此的距离。

4. 医疗咨询:自由口通讯为患者提供了便捷的医疗咨询渠道。

患者可以通过视频通话或语音电话与医生进行沟通,咨询病情和诊疗方案。

这不仅节省了患者的时间和精力,还为医生提供了更多的咨询机会,提高了医疗资源的利用效率。

5. 跨国交流:自由口通讯打破了国界的限制,使得跨国交流变得更加容易。

无论是商务合作、学术交流还是文化交流,都可以通过自由口通讯技术进行实时的远程交流,推动了不同国家和文化之间的互动和合作。

6. 社交娱乐:自由口通讯也为人们的社交和娱乐提供了多种方式。

通过社交媒体平台,人们可以与朋友分享生活点滴,通过语音和视频聊天,人们可以随时随地与朋友进行交流和聚会,增强了社交的便利性和乐趣。

7. 应急救援:自由口通讯在应急救援方面发挥着重要的作用。

通过语音和视频通讯,救援人员可以及时了解灾情和伤情,与指挥中心进行实时的沟通和协调,提高了救援的效率和准确性。

8. 远程工作:自由口通讯为远程办公提供了便利条件。

员工可以通过语音和视频会议与同事进行沟通和协作,解决问题和制定工作计划。

PLC自由口通信技术研究与应用

PLC自由口通信技术研究与应用

PLC自由口通信技术研究与应用摘要:在实际工业控制系统应用环境中,研究plc自由口模式的通信有助于实现plc与windows程序开发环境间的实时通信。

通过研究plc自由口模式的通信,实现系统与plc的实时通信,从而能够完全实现工业控制系统中上下位机的通信,实时显示和控制plc 采集的数据,并将数据以数据库的形式存储起来方便研究和分析。

关键词:plc 实时通信数据采集自由口模式一、前言在实际的工业控制系统应用中,可编程控制器(plc)是系统的控制核心。

由于可编程控制器的结构简单、控制安全且易于编程等优点,能够超乎想象的满足小规模的控制要求,因此plc以其灵活多变的特点满足了各行各业工业自动化控制的需求,被称为现代工业自动化的中流砥柱。

本篇文章将简要介绍plc控制系统的组成结构,并研究了主流应用的s7-200系列自由口模式的通信技术以及应用情况。

二、plc控制系统可编程控制器首次应用于20世纪60年代末美国数字设备公司为gm公司设计的解决方案中,其主要功能是逻辑控制。

根据i/o口分类,plc可以分为巨型、大、中、小、微等多种plc。

而且不同国家生产的plc由于生产地的不同形成了不同的类型。

根据不同的结构,plc可以分为整体式、组合式和混合式这三种。

整体式结构是plc以前采用的主要结构,通过将cpu主机模块、i/o口以及电源和接口端等基础组成模块通过一定的方式紧密的封装在一个整体的壳体内,形成一个整体。

整体式结构目前主要应用在集中控制的工业现场。

模块式结构是根据不同的功能模块相互独立的进行封装。

主要分为cpu主机、输入、输出、电源和辅助功能模块。

各个模块相互独立,在组装时可以根据所需功能按照相应的规范安装在莫班上,各模块自动组建成控制系统。

模块式结构主要应用于分布式控制的工业现场。

混合式结构包含plc主机和拓展模块,plc主机包含主要的基本模块,能够独立完成相应的控制功能。

拓展模块式主要其他辅助只能模块。

实验十 自由口通信实验

实验十 自由口通信实验

实验十自由口编程实验一、实验目的了解PLC通信功能;初步掌握PLC自由口通信编程方法。

二、实验设备1、THSMS-A型实验装置二台2、安装了STEP7-Micro/WIN4.0编程软件的计算机一台3、PC/PPI编程电缆,网络连接器。

4、锁紧导线若干三、实验内容与步骤(1)输入以下程序,通过串口调试软件(可从网上下载,下图为某一款软件主界面)或windows超级终端(使用方法附后,如果你的计算机中没有,请找老师或者从网上下载)观察现象。

Network 1 // 网络标题// 传送:“S7-200你好”到VW100开始的五个字(十个字节)LD SM0.1MOVB 16#09, SMB30 //9600,8,N,1MOVW 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-22Network 2LD SM0.5 //秒脉冲,占空比50%EUXMT VB99, 0 //上升沿发送VB99中写明的字节数,从端口0发送(2)输入以下程序,通过串口调试软件(可从网上下载,下图为某一款软件主界面)或windows超级终端(使用方法附后,如果你的计算机中没有,请找老师或者从网上下载)观察现象。

主程序:Network 1 // 网络标题// 网络注释LD SM0.1MOVB 9, SMB30MOVB 1, VB100MOVB 'A', VB101Network 2LD SM0.1ATCH INT0, 8ENINetwork 3LD I0.1EUXMT VB100, 0中断程序:TITLE=中断程序注释Network 1 // 网络标题//SMB2中包含自由端口通信过程中从端口0 或端口1 收到的每个字符LDB= SMB2, 'A'= Q0.1程序所用符号表:拨动PLC开关进入运行状态,此时关闭STEP7软件,启动超级终端,在终端窗口分别输入CHINA123和chinAa123,观察PLC的Q0.1端子的灯亮来灭情况。

通信接口设计的原理与方法

通信接口设计的原理与方法

通信接口设计的原理与方法通信接口指的就是在通信系统中,不同设备之间进行信息交换所需要的物理、逻辑连接方式和信号标准。

在现代化信息技术的推动下,各种类型的通信接口种类越来越多,从最初的串口、并口,到现在的USB、HDMI、雷达和NFC等等。

本文主要探讨通信接口的设计原理和方法。

一、通信接口的分类通信接口可以根据不同的标准进行分类,如传输速率、连接方式、信号类型等。

下面将介绍通信接口的主要分类:1.按传输速率分类通信接口的传输速度很大程度上决定了其使用场合和设备的应用范围。

因此,通信接口可以根据传输速率的不同分为以下几类:(1)低速接口:传输速率一般在10Mbit/s以下,例如串行接口、并行接口、PS/2接口等。

这种接口适用于一些数据传输要求不太高的应用中。

(2)中速接口:传输速率一般在10Mbit/s到100Mbit/s之间,例如USB接口、PCI接口等。

这种接口适用于需要高速数据传输的应用中。

(3)高速接口:传输速率一般在100Mbit/s以上,例如SATA 接口、HDMI接口等。

这种接口适用于需要大数据量高速传输的应用中。

2.按连接方式分类通信接口可以根据连接方式的不同分为以下几类:(1)串行接口:数据是个接个传输的,速度慢但稳定,适用于不需要高速数据传输的应用中。

(2)并行接口:数据可以同时传输多个,速度快但抗干扰能力差,适用于需要高速数据传输的应用中。

(3)USB接口:通常都是采用USB接口进行设备间的连接,其特点是插拔方便,泛用性强,速度也较快,目前已成为设备之间最主要的通信接口之一。

(4)HDMI接口:既可以传输音频信号,也可以传输视频信号,速度相对较快,适用于高清视频传输。

3.按信号类型分类通信接口可以根据信号的类型分为以下几类:(1)模拟信号接口:适用于需要传输模拟信号的应用,例如音频接口、视频接口等。

(2)数字信号接口:适用于需要传输数字信号的应用,例如网口、串口、并口、USB接口等。

自由口通讯

自由口通讯
宏指令编写自由通讯协议
本章主要讲述在 SKWorkshop(以下简称 SK)组态软件中如何用宏指令编写 自由通讯协议。SK 的自由通讯协议编写主要运用了内部自带的两个函数:
PUTCHARS(发送数据函数)和 GETCHARS(接收数据函数)。编程人员运用这两个函数 可以很方便的编写自己的设备协议。
首先新建一个工程,命名为:自由口通讯;通讯连接设置连接接口:COM1;设备服务 选择:Samkoon NULL PLC(或者建立工程后在连接中更改),如图 3-1:
}
else
//接收正确
{
LW2=Gdata[0]&0xff;
//数据处理
LB0=0;//处理Fra bibliotek毕,下次进入时发送
PUTCHARS(0,Pdata,0);
//清除缓冲区
}
}
在变量设定表里面建立如下 4 个变量:
LB0:内部地址 LB0,BOOL,读写;
LW0:内部地址 LW0,16 位整数,写;
LW1:内部地址 LW1,16 位整数,写;
//所要发送的数据
Pdata[1]=0x02;
Pdata[2]=0x03;
Pdata[3]=0x04;
PUTCHARS(0,Pdata,4);
//发送函数,发送数据到串口
LB0=1;
//发送完毕,下次进入不发送,等待接收
return;
//退出等待接收
}
else
{
result=GETCHARS(0,Gdata); //接收函数,把接收到的数据存在 Gdata 数组中
图 3-2
图 3-3 下载工程至触摸屏,用串口线连接电脑与触摸屏。电脑端打开串口调试助手, 设置串口参数与触摸屏参数一致。连接成功以后在接收区接收到如图 3-4 所示代 码

自由口通信整理

自由口通信整理

自由口通信资料总结自由口通信S7-200 CPU的串行通信口可由用户程序控制,这种操作模式称作自由口通信。

自由口通信时基于RS-485的硬件基础,允许应用程序控制s7-200 CPU的通信端口,以实现一些自定义通信协议的通信方式。

波特率为1200~115200 bit/s。

当选择了自由口通信模式,程序可以使用接收中断、发送中断、发送指令和接收指令来控制通信操作。

在自由口模式下,通信协议完全由程序控制。

SM30(用于端口0)和SM31(如果有两个端口,则用于端口1)用于选择波特率和奇偶校验。

S7-200处于自由口通信模式时,所有的通信任务和信息定义均需要由用户编程实现。

简单情况下,可以只用(XMT)指令向打印机或者显示器发送信息,或者同条码阅读器、重量计和焊机等进行通信连接。

每种情况下,都必须编写程序,以支持自由端口模式下设备同CPU通信的协议。

只有CPU处于RUN模式时,才能进行自由端口通信。

通过向SM30或SM31的协议选择区置1,可以选择自由端口模式。

处于自由端口模式时,不能与编程设备通信。

注意:1)s7-200 CPU通信端口是半双工通信口,所以发送和接收不能同时进行。

2)S7-200 CPU通信口处于自由口模式下时,该通信口不能同时工作在其他通信模式下。

例如:不能再端口1进行自由口通信时,又使用该通信口进行PPI编程。

3)S7-200 CPU通信端口是RS-485标准,如果通信对象是RS-232设备,则需要使用Rs-232/PPI 电缆。

4)自由口通信只有在s7-200 CPU 处于RUN模式下才能被激活,如果将s7-200 CPU 设置为STOP模式,则通信端口将根据s7-200 CPU系统块中的配置转换到PPI协议。

5)SM0.7反映CPU的模式,通过修改SM0.7的状态可以控制自由端口模式的进入。

应用自由口通信首先要把通信口定义为自由口模式,同时设置相应的通信波特率和上述通信格式。

一个自由口通信编程的实现流程

一个自由口通信编程的实现流程

一个自由口通信编程的实现流程需求:S7-200smart 通过自由口和2台(多台仪表) 通信。

每台仪表的通信数据:一个过程量(只读),5个参数(读写)。

仪表通信协议:自定义协议,消息字符ASCII码模式,写参数时,无返回消息。

轮询要求:过程量优先读取,最快刷新;参数值定时间隔读取,或者上位机指令读取;参数值有变更需求才写入,工作情况:读写参数 均通过上位机画面操作,正常不会出现多台仪表同时出现写请求,存在操作上的时间差。

构想方案:公用变量:站地址变量,通信状态变量,重试次数(超时次数上限/超限认为掉站),掉站恢复时间(掉站后,重试间隔时间)独占变量:写请求状态字节(每个站地址建一个变量)读请求状态字节(每个站地址建一个变量)超时次数(每个站地址建一个变量)掉站标志位(每个站地址建一个变量)*以上“变量”等同于存储地址1,采用站地址轮询策略:轮询到某个站地址时,先读取过程值,再检查写请求状态字节,是否存在写参数请求,若有,写参数通信,更新读请求状态字节,若没写参数请求,再检查读请求状态字节,是否存在读参数请求,若有,读参数通信,如没有,轮询一个站地址。

即每个站的通信次序为 读过程值--- 写一个参数---读一个参数 。

2,超时处理:轮询到某个站地址,读过程值或者读参数 返回数据没有超时,该站地址超时次数清零,若超时,该站地址超时次数加1,轮询下一个站地址。

3,掉站处理及重新询站:某站地址超时次数超过重试次数,判定掉站,掉站标志置位,下次轮询到该站地址,跳过,轮询下一个站地址。

掉站后,经过重试间隔时间,掉站标志复位,依次进入轮询。

4,读/写请求状态字节 及读/写处理状态字节从低位到高位(位0-位4),不用的位均置零,每一位均表示一个参数的读/写请求标志,当状态字节不为0,即表示本站存在读/写请求。

读/写参数时,从低位向高位查检索,查询到第一个“1”位,本次轮询只对这个参数进行读/写。

5,特别的,仪表在接收写参数消息帧时,没有返回消息,因此有写参数时,必须将该参数的读请求标志也置位,同时清除读参数中的其他标志位。

自由口通讯

自由口通讯

包头就是起始符,包尾就是结束符校验用的是CRC,校验码有很多种。

包头就是两个字节,两个##,换算成16进制就是23 23包尾是两个&&。

从站收到这样的请求,他先校验包头和包尾然后再接受CRC校验码再分析指令类型和数据段。

把指令类型和数据段叫做有效数据区。

数据段就是FF在这里就是这样定义的。

例:##(包尾0) 01(指令类型)FF(数据段)校验码(根据指令类型和数据段算出来)&&(包尾)把这串数据发出去,但这里没有地址信息,因为是两个设备在通讯,而不是一个主站和多个从站。

对方收到这串指令会判断指令类型,如果是01.就会立即回传实时数据从站格式:从站格式:不能同时发送和接收,因为半双工,也不能同时接收或发送两条。

编程要求:要自由口模式,所以要设成mm=01,要用端口0那就是SMB30,自由口波特率如果是9600波特,那bbb就是010,pp00不校验,一般每个字符都是8位,所以d是0.所以ppdbbbmm=00001001,8421码就是16进制的9,把16#09赋予SMB30.这里没有设的就是起始位跟停止位,在默认条件下,它只支持1个停止位跟1个起始位,如果有的协议要1.5或者2个起始位跟停止位就不行了缓冲区:缓冲区第一个字节是计数,后面就是信息的内容。

下图:TBL是vb500,那就是vb500里面放的我要发送的这串数据有多少个字符或者是字节如果有10个字节,就把10填到vb500,起始符如果有的话,就应该在vb501,往下总共就是10个字节。

接受RCV也一样,有多少字节,图里可以看出可以从vb500里读取,因为是半双工的,发送和接受不能同时进行,所以发送缓冲区和接收缓冲区可以是同一个,如图都是vb500,为了节省内存,当然也可以不是同一个。

接收就比较复杂,接收指令激活以后,会进入接收等待状态一直保持接收等待状态,但如果需要的话,可以给它一个时间,它就认为这次的通讯不成功,过了这个时间就不让它等待了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

详细设计
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校验码存放的位置的不确定,故确定B CC校验码存放位置也是需要注意的。

由口库函数的数据发送流程图如图2:
图2 数据发送流程图
4.2 对应答帧BCC校验
对应答帧BCC校验是为了检测应答帧在数据传输的过程中是否出错,其校验的方法很简单,直接求取接收到的应答帧中站地址、控制码、数据标识、数据域长度、数据域的BCC 校验码,将所得的结果与应答帧中传过来的BCC校验码比较,如果一致,表明数据传输过程中没有出错,如果不一致表明数据传送过程中出现了错误。

对于校验发现出错的应答帧,不再对其进行解码,只需主站将错误信息代码通过错误代码存储器指示出来即可,BCC校验的流程图如图3:
图3BCC校验流程图
4.3 数据解码
数据解码是自由口通信中最为主要的一个部分,数据解码的结果是从应答帧返回的数据帧信息中找出主站需要的信息。

在数据解码过程中需要进行一些列的容错判断,比如说:返回的应答帧的站地址是否正确;返回帧的数据标识是否一致;返回帧的数据域长度是否正确等等,只有当所有的信息都正确的情况下,才能将应答帧中数据域的内容取出放入指定地方。

数据解码的流程图如图4:
图4数据解码流程图。

相关文档
最新文档