(原创)C#监控软件通信模型

直接操作现场的设备是PLC,不是服务器和客户端。所以,以PLC为核心分析设备故障以及在PC端的C#程序中加入故障处理代码。
PC端读和写PLC哪个重要?写重要。因为写会影响PLC的寄存器值,进而影响工艺流程,设备的动作,读不会影响。所以需要处理好PC端的设定值和控制开关的实时保存和重启软件时的恢复功能。
服务器端C#软件含有2个服务器对象(SUPER SOCKET和MODBUS-TCP)和1个客户端对象( SiemensS7Net)。
SUPER SOCKET服务器基于命令行协议提供数据读写服务
MODBUS-TCP服务器基于MODBUS-TCP协议提供数据读写服务
SiemensS7Net客户端基于西门子S7协议读写西门子PLC操作
有3种通信模型:
通信模型1:只有2种对象:PC机+PLC. PC机与西门子PLC走S7协议,1台PC机带很多台PLC。
通信模型2:有3种对象:PC客户端(只读)+PC服务器+PLC. PC服务器走S7协议读写西门子PLC,把PLC的数据都写进MODBUS寄存器中,PC客户端走MODBUS-TCP协议读取PC服务器的MODBUS寄存器得到PLC的数据。
通信模型3:有3种对象:PC客户端(可读可写)+PC服务器+PLC. PC服务器走S7协议读写西门子PLC,把PLC的数据都写进MODBUS寄存器中,PC客户端走MODBUS-TCP协议读取PC服务器的MODBUS寄存器得到PLC的数据。PC客户端还可写入服务器的MODBUS寄存器,服务器根据客户端的写入值来控制PLC。
在通信模型1中的故障处理措施:PC端的设定值和控制开关状态都实时刷入INI文件中,在故障重启或者重新启动软件时,把INI文件中的数据准确恢复到之前的状态。
在通信模型1中会出现的故障情况:
现场的2种机器:1台电脑,多台PLC
(1)如果停电,2者都会关机,当来电后重新启动电脑和PLC之后也要求保持断电前的状态。
(2)如果没停电,PLC正常工作,电脑异常死机。这样的状态是允许的,执行任务的是PLC,电脑是发出命令和显示PLC参数,当电脑正常发出命令给PLC,PLC已经接收到命令执行正确的任务。突然电脑异常死机,PLC也能继续执行任务不出错,只是没有电脑,看不到PLC的状态而已。这样的情况只需要电脑重启,软件打开时不能影响PLC的正常动作。软件的设定值和控制开关状态因为取的是INI文件的数据,这些数据会被实时刷新到INI文件中,重启软件时会被初始为INI中的数值,所以不会出错。
(3)如果没停电,电脑正常工作,PLC异常死机。这样的状态是不可控状态,因为你不知道什么时候PLC会异常死机,在PLC死机时,电脑的PLC数值和状态显示不可作为参考,电脑的PLC数值设定和开关设定一定要作为参考,这些设定会在PLC重启正常后起作用,所以电脑设定值和设定开关不要乱点乱改。
在通信模型1中的故障处理措施:PC端的设定值和控制开关状态都实时刷入INI配置文件中,在故障重启或者重新启动软件时,把INI配置文件中的数据准确恢复到之前的状态。
在通信模型2中会出现的故障情况:
有3种对象:PC客户端(只读)+PC服务器+PLC。
所有客户端故障都不会影响服务器和PLC。因为客户端只读作用,是被动状态。
服务器和PLC的故障处理就变成了通信模型1中的情况一模一样。
在通信模型3中会出现的故障情况:
有3种对象:PC客户端(可读可写)+PC服务器+PLC。需要处理客户端和服务器的变量初始化,2者都需要实时刷控制值和开关值到INI文件中,当停电或异常关机,客户端和服务器重新打开时就可以进行变量的初始化,恢复到掉电前的状态。
(原创)C#监控软件通信模型的更多相关文章
- 普及windows流氓程序和监控软件
win7下载更改后无黑屏windows7激活程序v1.0 一个立即安装 美女主播节目,和流行的色情垃圾邮件 安装程序,结果装了很多垃圾节目,输入.日历.文件等. 重新启动机器后,,会弹出广告. .他的 ...
- 现在的SQLSERVER数据库监控软件有哪些?
现在的SQLSERVER数据库监控软件有哪些? 收集了一下当前SQLSERVER数据库监控软件,发现开源免费的真的是“没有” Questsoftware Quest's spotlight(收费) ...
- Android手机监控软件设计实现
一.需求分析: 随着IT信息技术的飞速发展,手机的普及,伴随着智能手机的出现及快速的更新换代,手机已不仅仅是一个通信工具,更是一个多功能的应用平台. 手机监控软件则是基于电脑监控软件的原理,植入手机平 ...
- CEPH监控软件
概述 目前主流的Ceph开源监控软件有:Calamari.VSM.Inkscope.Ceph-Dash.Zabbix等,下面简单介绍下各个开源组件. Calamari 概述 Calamari对外提供了 ...
- 删除新版UniAccess Agent 办公室监控软件的方法
UniAccess Agent 是在由LeagSoft开发的监控软件,老版本的一般安装在C:\Program Files\LeagSoft\UniAccess Agent这个目录下,一般找到这个目录点 ...
- Greenplum-cc-web监控软件安装
一环境列表 操作系统 centos6.5 64 Greenplum版本: greenplum-db-4.3.5.3-build-2-RHEL5-x86_64.tar Greenplum集群环境搭建: ...
- 完全国人自主研发原创的智能软件路由器BDS即将发布,附带企业服务总线ESB功能
完全国人自主研发原创的智能软件路由器即将发布: 完全国人自主研发原创的智能软件路由器BDS即将发布,附带企业服务总线ESB功能 智能软件路由器 BDS 简要介绍 http://kan.weibo.co ...
- 开源监控软件ganglia
开源监控软件ganglia安装手册 Ganglia是一个监控服务器,集群的开源软件,能够用曲线图表现最近一个小时,最近一天,最近一周,最近一月,最近一年的服务器或者集群的cpu负载,内存,网络,硬盘等 ...
- Ubuntu 16.04安装基于nethogs衍生的网络监控软件(应用实时网速监控)
基于nethogs衍生的网络监控软件有如下所列举的: nettop显示数据包类型,按数据包的大小或数量排序. ettercap是以太网的网络嗅探器/拦截器/记录器 darkstat通过主机,协议等方式 ...
随机推荐
- LVS (Linux虚拟服务器)模型及算法
LVS(Linux Virtual Server)Linux虚拟服务器 LVS集群采用IP负载均衡技术和基于内容请求分发技术. 用户请求发给负载均衡调度器,由负载均衡调度器根据设定的调度算法将请求发给 ...
- selenium中三大窗口切换
我们在做UI自动化时,不得不会遇到一些窗口跳转与弹框,在这种的时候如果不进行切换的话,继续执行脚本必然会报错,所以我们就需要用到切换窗口的方法. selenium中主要是三种窗口 Windows窗口 ...
- 后缀自动机专题(hihocoder)
传送门 #1445 : 后缀自动机二·重复旋律5 题意: 给出字符串\(s\),询问字符串\(s\)中有多少不同的子串. 思路: 考虑对\(s\)建后缀自动机,那么\(\sum (len[i]-len ...
- 201871010118-唐敬博《面向对象程序设计(Java)》第四周学习总结
博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...
- centos7删除PHP怎么操作
前面我们说了centos7删除MariaDB,现在我们说说centos7删除PHP怎么操作?当然不是特殊需要,不要去删除PHP,后果很严重.操作之前请做好所有的备份!首先查看有没安装php以及版本 # ...
- Spring——JDBC——数据库
1.Spring 的数据访问哲学 数据访问的功能放到一个或者多个专注于此项任务的组件.这样的组件通常称为数据访问对象(data access object)DAO或者Repository. 为了避免应 ...
- Android 开发基础入门篇: 动态权限申请
说明: 咱们在安装APP的时候经常会看到,类似于下面的提示 goolge为了保护用户隐私,在android 6.0开始,某些隐私权限,必须用户允许以后,内部程序方可使用 这就涉及到权限动态申请问题. ...
- [RN] React Native 使用 图片预览和放大 插件 react-native-image-zoom-viewer 过程中,放大报错问题
React Native 使用 图片预览和放大 插件 react-native-image-zoom-viewer 过程中,放大报错问题 报错如下: Cannot record touch end w ...
- Qt绘制中国象棋棋盘
这里主要用的是#include <QPainter>里面的paintEvent void Board::paintEvent(QPaintEvent*) { QPainter painte ...
- 洛谷 p1516 青蛙的约会 题解
dalao们真是太强了,吊打我无名蒟蒻 我连题解都看不懂,在此篇题解中,我尽量用语言描述,不用公式推导(dalao喜欢看公式的话绕道,这篇题解留给像我一样弱的) 进入正题 如果不会扩展欧里几德的话请先 ...