2.2.9从站提交数据到上位机

主站扫描子站时,子站将数据包发送到主站,主站转发到上位机,上位机收到后发送数据收到确认包到主站,主站收到确认包后转发到从站。从站未收到确认包,不会进行其他数据的上传。在规定时间内未收到确认包认为数据传送失败。

主站-->从站扫描码

从站-->主站数据

主站-->PCFLASH存储器中数据

PC-->主站确认码(放入FLASH存储器)

主站-->从站确认码

从站-->主站应答码

3软件实现

主站主要完成2个功能:对各节点进行扫描以获取并保存各节点的通信状态;对上位机与各从站之间的报文进行可靠转发。软件流程如图2所示,系统上电后,首先进行初始化操作,主要包括设置串口、定时器,开启开门狗,配置芯片引脚等内容。

系统初始化成功后,主站向上位机请求从站配置信息,主要包括从站数量、各从站的地址、各从站配置情况即从站为启用还是闲置状态。

从站配置信息请求成功后,主站开始对各从站进行扫描,并对扫描中产生的从站报文进行处理。每扫描完一个从站,主站都会去查看有无来自上位机的报文,并对报文进行适当处理。当经过一定时间间隔后主站再去扫描下一个从站。

其中,在来自上位机的报文中,有的报文是需要转发给某个从站的,在扫描期间来自从站的报文中,有的也是需要转发给上位机的。只有合理设计转发协议,才能既保证报文的可靠传输,又不致于使系统实时性明显变差或产生网络堵塞。本系统将来自上位机的报文分为3类:第1类是上位机直接传给主站的,主站收到这类报文,进行简单回复,这次通信完成;第2类是上位机发给某个从站并且需要得到从站回复信息的,这时候需要主站将报文转发给此从站,并将此从站的回复信息再转发给上位机;第3类是上位机发给某从站但不需要回复的,这时主站将报文传给此从站,但不需要等待从站的回复信息,这次通信完成。同理,在扫描过程中,对从站产生的报文的处理也分为类似3种,具体处理过程如图2所示。

图2主程序流程图

本控制系统的设计中,由于主站的使用,一方面,上位机不再承担对众多从站的轮询工作,使其拥有了更多的CPU资源进行快速响应、处理人机交互与日志存储等事件,顺畅完成众多动画的播放,提高了系统的事件处理与响应能力;另一方面,在传统的主从式RS485通信网络中,当某根通信线由于意外或者人为原因造成短接或断路后,可能导致整个通信网络瘫痪,主站的使用,使得原本连接在同一网络上的上百个从站分成几个相对独立的网络,当某一网络发生故障时,将不会对其他网络的通信造成影响。同时,由于主站可以脱离上位机单独对各从站进行扫描并实时获取各从站的当前状态,如果上位机需要从某种故障中恢复并进行重新启动,它可以直接从主站中快速获取整个系统中所有从站的当前状态,主站还可以根据扫描从站数的多少,自动调整扫描时间间隔,在保证系统响应的前提下降低通信故障率,提高系统可靠性与安全性。

4结语

本文详细论述了基于Modbus协议的RS485总线通讯机设计原理。虽然此主站的增加会使系统成本稍有上升,但它不仅可以使上位机从繁忙的通信工作中解放出来,更好地完成人机交互、数据处理、动画播放等任务,而且还能够提高系统独立性,加快系统从故障中恢复的速度,有效地提高系统的可靠性、安全性。本设计已成功应用于某监狱门禁控制系统,实践证明该系统运行稳定、故障率低、操作方便、安全可靠

计算机485通讯原理,软件实现 - 基于Modbus协议的RS485总线通讯机设计原理及应用...相关推荐

  1. rs485与modbus流程图_基于Modbus协议的RS485总线通讯机设计原理及应用

    摘要:该文详细论述了基于Modbus协议的RS485总线通讯机设计原理及应用.物理结构上包括上位机.主站.和多个从站节点.在上位机与各从站节点间增加主站,承担上位机的轮询工作,使上位机从繁忙的通信工作 ...

  2. 基于MODBUS协议的单片机与(串口屏)触摸屏通信(图文)

    基于MODBUS协议的单片机与(串口屏)触摸屏通信(图文) 导读:触摸屏能够直观.生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好.触摸屏和单片机通信,需要根据触 ...

  3. 基于Modbus协议的C#串口工具开发

    (Tips:本人纯萌新小白一枚,文章只为记录自己的编程历史,温故而知新,能帮助到大家倍感荣幸,有错误的地方劳烦指点!) 不多废话直接进入主题! 本文旨在基于Modbus协议.C#开发语言进行串口工具的 ...

  4. c# MODBUS协议源码 上/下位机源码烧写Flash工具

    c# MODBUS协议源码 上/下位机源码烧写Flash工具 包含: 1.C#上位机源码 2.上位机源码包含MODBUS协议源码 3.下位机源码 下位机源码采用STM32F10x芯片 的uC/OS-I ...

  5. 基于modbus协议的工业自动化网络规范_工控学堂:解读Modbus通讯协议「宜收藏」...

    作为工控人,Modbus通讯协议想必都不陌生,Modbus通讯协议可以说是工业自动化领域应用最为广泛的通讯协议,因为他的开放性.可扩充性和标准化使他成为通用工业标准. 1979年施耐德电气制定了一个用 ...

  6. plc通讯的握手信号_基于Modbus协议实现PLC与智能仪表的通讯

    1 引言 Modbus 协议是法国施耐德公司推出的一个全开放的"主从式(Master/Slave)"通讯协议,其本意在于实现上位机(主设备)对PLC(从设备)内部存储区域的&quo ...

  7. 基于Modbus协议的KingSCADA-IOserver和仿真PLC通信

    1.获取本机和从机IP地址 设本机192.168.1.1 设从机192.168.1.2 cmd命令ping主从机保证网络连通 2.从机运行仿真PLC软件(ModSim32) 寄存器地址(Adderss ...

  8. udp协议没有粘包问题、基于socketserver实现并发的socket(基于tcp、udp协议)、基于udp协议的套接字、操作系统原理以及进程知识

    基于udp协议的套接字通信服务端 from socket import *server=socket(AF_INET,SOCK_DGRAM) #数据报协议->udp server.bind((' ...

  9. 基于modbus协议的工业自动化网络规范_一种基于Modbus的工业通信网关设计

    近年来,随着工业自动化领域的发展,工业现场对网络的可靠性及成本有极高的要求.传统基于串口的工业网关可以满足工业现场的应用,但却要付出高额成本.一种基于 ModBus 设计的工业通信网关就走进人们的眼中 ...

  10. 基于RTP协议的H.264视频传输系统:原理

    1.引言      随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性.但人们又面临着另外一种不可避免的尴尬,就是在网络上看到生动清晰的 ...

最新文章

  1. Active Directory 账号迁移配置介绍
  2. spark submit 入门
  3. AngularJS学习笔记
  4. Mule ESB,ActiveMQ和DLQ
  5. python list index方法,Python List.index()方法
  6. [coursera] [design] Hangman
  7. java 封装(Encapsulation)
  8. Maven生命周期——2
  9. 开课吧python全栈靠谱么-杭州Web全栈
  10. python自动化上传文件_python接口自动化测试二十三:文件上传
  11. 学习笔记--maven
  12. mac 安装 Xdebug
  13. JavaScript - 理解面向对象编程
  14. JavaWeb07-HTML篇笔记(三)
  15. Java调用C/C++的过程
  16. 3dmax室内模型导入Unity3d 快速烘焙光照【2020】
  17. Linux系统中解决Device eth0 does not seem to be present,delaying initialization问题
  18. 关于三角函数级数的一个重要结论+和差化积+积化和差
  19. 基于JAVA景区售票系统设计与实现 开题报告
  20. 照片变漫画的方法有哪些?推荐两个方法给你

热门文章

  1. 基于51单片机超声波测距仪倒车雷达报警器汽车防撞系统套件
  2. 八年级计算机模拟试题,八年级计算机试卷(含答案).doc
  3. Meta分析在生态环境领域里的应用
  4. 【FLY】C语言知识点总结
  5. 这届年轻人为什么都不爱看电视了?
  6. win32 API 调用方法
  7. 学生签到系统java_基于jsp的学生签到-JavaEE实现学生签到 - java项目源码
  8. c语言补码转源码函数,求原码、补码,反码(C语言源代码)
  9. 坚持练字一年是什么样的体验?
  10. go程序设计语言第十章-包管理和Go工具