基于数传电台的组态王控制实现远程采集控制器PLC
「物联网应用案例」基于数传电台的组态王控制
一.案例介绍
采用亚控科技组态王结合亿佰特E90系列数传电台实现远程采集控制PLC。在这里主要介绍通信环境的搭建,故不采用过于复杂的控制程序,但为了体现控制效果,使用我们最熟悉的点灯系统作为测试工程,并引入一个保持寄存器测试MODBUS 03功能码的工作情况。
工作原理
组态王使用莫迪康的MODBUS RTU接口协议通过RS485串口连接E90数传电台,并作为主机使用。顾美CX3G-PLC(以下称为PLC)的2号串口作为MODBUS RTU从机,处理组态王的查询和控制指令。
图1 通信拓扑
使用PLC的第七路离散输入(X06)口作为开灯的就地控制点,使用第八路离散输入口(X07)作为关灯的就地控制点,使用M2作为组态王远程开灯控制点,使用M3作为组态王远程关灯控制点。
利用PLC特殊寄存器的秒寄存器(D8013)自动为组态王读取寄存器(D0)赋值。
方案优势
中控室与PLC控制柜之间一般都有较远的距离,使用数传电台可以减少布线和后期故障查询的时间成本和施工成本,同时也能方便后期功能拓展。除此之外还具有以下优点。
1. 能够解决难以布线的环境(山地、港口和开阔地等)采用有线的施工周期长,甚至根本无法实现的问题。
2. 配网方便灵活,可扩展性良好。花费较小的时间成本就能实现设备组态。
3. 维护和故障查询方便快捷。
4. 可以方便地实现多点控制。
5. RTU设备都可以通过这种方式进行拓展。
二.PLC程序设计
使用GX Works2编程软件采用梯形图进行编程;
1、首先要配置PLC串口参数,MODBUS地址。
n 通过运行触发继电器(M8002)进行参数配置使能信号。
图2 PLC串口配置寄存器
n PLC的串口参数配置寄存器(D8120),通过图2的配置表将串口设定为H0E0D1(115200-无校验-1个停止位-8个数据位-RTU模式),B13-b15默认都配置为1。
n 配置MODBUS地址寄存器(D8121)设置为地址1。
n 配置MODBUS功能继电器(M8125)和启用协议传输继电器(M8196)。
图3 CX3G-PLC串口参数配置
2、模拟一组保持寄存器数据
使用CX3G-PLC特殊寄存器的秒寄存器(D8013)模拟变化数据传输给保持寄存器(D0),用于组态王读取。
图4 模拟保持寄存器数据
3、设置控制点
配置一个控制点位,可以通过离散输入点位X006、X007进行就地控制,也可通过M2、M3利用组态王上位机进行远程控制。
图5 控制点位
三.组态王配置
首先创建一个基本组态王工程,设备组态与直接连接设备时方法相同,数传电台只有代替在原来RS485线缆的作用,不影响工程的配置。
1、组态王设备配置
这里我采用通用的MODEBUS RTU协议来配置组态王设备,如图6所示。采用PLC选项下的莫迪康公司的MODBUS RTU协议。
图6 组态王设备配置
点击下一步后选择对应的端口号,在上一节中我将PLC的MODBUS地址设为1,组态王的通信设备地址也设置为1,否则将无法正常通信。
2、组态王变量配置
从功能设计出发组态王需要配置2个控制点位、2个离散量采集点位、1个线圈采集点位和1个保持寄存器采集。如有不明之处可参考组态王寄存器配置帮助。
图7 变量配置
变量配置表为本次案例所需的采集控制点位表。
变量名 |
变量类型 |
寄存器 |
数据类型 |
读写属性 |
开灯 |
I/O离散 |
00003 |
Bit |
只写 |
关灯 |
I/O离散 |
00004 |
Bit |
只写 |
Y00 |
I/O离散 |
013057 |
Bit |
只读 |
X06 |
I/O离散 |
113319 |
Bit |
只读 |
X07 |
I/O离散 |
113320 |
Bit |
只读 |
D0 |
I/O整数 |
40001 |
USHORT |
只读 |
表1 变量配置表
3、界面制作
制作一个包含离散量输入提示、线圈状态提示、线圈控制、保持寄存器读取的简单组态王界面,如图8所示。
图8 组态王界面
四.设备配置
我以E90-DTU(2G4HD12)数传电台为例,使用其他E90系列电台也可以,电台只是作为传输介质使用,与我所使用的电台只在配置电台连接时有少许差异。
工作模式 |
M1(输入引脚) |
模式介绍 |
透传模式 |
0(低电平) |
无线处于收发状态,透明传输 |
配置模式 |
1(高电平) |
用户可通过串口查询配置模块参数,无线关闭 |
表2 数传电台模式配置
进入配置模式,使用上位机配置软件将两台数传电台的波特率、校验位、流控、链路设置配置为相同参数,这里我使用115200-无校验-无流控-12链路。由于PLC将串口参数固定,电台所使用的串口参数应与其保持一致。
图9 数传电台上位机配置
五.设备连接
PLC与电台之间使用RS485电缆连接,如图10所示。
图10 PLC连接图
PC(组态王)使用USB转RS48转换器与电台连接,如图11所示。
图11 PC连接图
X006与X007分别接上SB1、SB2用于就地控制Y00连接的LED有源电灯,如下图10所示。
给各设备通上对应的电压,待PLC启动完成,案例系统开始运行。
六.效果展示
1、就地控制
按下SB1按键LED亮起,组态王收到X06触发信号以及Y00线圈吸合信号,按下SB2按键LED熄灭,组态王收到X07触发信号以及Y00线圈释放信号。
图12 就地控制关灯
2、组态王控制
按下开灯按键Y00吸合LED亮起,按下关灯按键Y00释放LED熄灭。
图13 组态王开灯控制
总结
以上便是本次案列测试环境搭建以及控制逻辑实现方式。采用此种控制方式,不只是方便布线,更是为后期升级提供更为方便的可能,减少布线能使工厂环境更加美观,故障查找更加方便。
基于数传电台的组态王控制实现远程采集控制器PLC的更多相关文章
- 组态王6.55WEB全新发布步骤
转载请... 算了 估计没有人转..自己留着看 目的: 本教程通过组态王6.55实现一个WEB服务器和一个WEB画面的客户端,总共两个工程.服务器工程名为 Server , 客户点为 Client.S ...
- 基于VHDL利用PS2键盘控制的电子密码锁设计
基于VHDL利用PS2键盘控制的密码锁设计 附件:下载地址 中文摘要 摘 要:现代社会,人们的安全意识正在不断提升.按键密码锁由于其具有方便性.低成本等特征,还是大有用武之地的.但是通常的按键密码锁开 ...
- Struts2中基于Annotation的细粒度权限控制
Struts2中基于Annotation的细粒度权限控制 2009-10-19 14:25:53| 分类: Struts2 | 标签: |字号大中小 订阅 权限控制是保护系统安全运行很重要 ...
- 基于maven插件的缓存控制插件
asset-cache-control github源码及下载地址: https://github.com/StruggleBird/asset-cache-control 基于maven插件的缓存控 ...
- Shiro入门之二 --------基于注解方式的权限控制与Ehcache缓存
一 基于注解方式的权限控制 首先, 在spring配置文件applicationContext.xml中配置自动代理和切面 <!-- 8配置自动代理 --> <bean cl ...
- 西门子 S7300 以太网模块连接组态王方法
北京华科远创科技有限研发的远创智控ETH-YC模块,以太网通讯模块型号有MPI-ETH-YC01和PPI-ETH-YC01,适用于西门子S7-200/S7-300/S7-400.SMART S7-20 ...
- 西门子 S7200 以太网模块连接组态王方法
北京华科远创科技有限研发的远创智控ETH-YC模块,以太网通讯模块型号有MPI-ETH-YC01和PPI-ETH-YC01,适用于西门子S7-200/S7-300/S7-400.SMART S7-20 ...
- 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据
基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据 by:授客 QQ:1033553122 实现功能 测试环境 环境搭建 使用前提 使用方法 运行程序 效果展 ...
- 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机或Docker容器性能数据
基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据 by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 3 使用前提 3 使用方法 ...
随机推荐
- MySQL外键约束On Delete和On Update的使用
On Delete和On Update都有Restrict,No Action, Cascade,Set Null属性.现在分别对他们的属性含义做个解释. ON DELETE restrict(约束) ...
- 初识react中高阶组件
高阶组件并不是一个组件,而是一个函数 这个函数返回值是一个组件,并且接受一个组件做为参数:并且返回一个新组件: function HighOC(WrapComponent){ //定义一个高阶组件 , ...
- Mysql_事务_存储过程_触发器
一.什么是事务? 事务(Transaction),一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit).事务通常由高级数据库操纵语言或编程语言( ...
- c++对c的拓展_指针的引用
套用引用公式:Type & ref =val; 假设:type 类型为int * 由公式得 int * & ref = val; // int * *const ref=&va ...
- Kubernetes探针原理详解
前言: 分布式系统和微服务体系结构的挑战之一是自动检测不正常的应用程序,并将请求(request)重新路由到其他可用系统,恢复损坏的组件.健康检查是应对该挑战的一种可靠方法.使用 Kubernetes ...
- 介绍一款倍受欢迎的.NET 开源UI库
概述 今天要带大家了解的是一款WPF的开源控件库MahApps.Metro.MahApps.Metro是用于创建现代WPF应用程序的工具包,它许多开箱即用的好东西. 目前支持的NET Framewor ...
- python基础练习题(题目 输出一个随机数。)
day35 --------------------------------------------------------------- 实例050:随机数 题目 输出一个随机数. 分析:使用ran ...
- JavaScript一行代码获取公网IP及城市信息
废话不多说,直接上代码! <script type="text/javascript" src="http://pv.sohu.com/cityjson?ie=ut ...
- k8s入门之namespace(三)
namespace的作用就是用来隔离资源,将同一集群中的资源划分为相互隔离的组.同一名称空间内的资源名称要唯一,但不同名称空间时没有这个要求.有些k8s资源对象与名称空间没有关系,例如 Storage ...
- Git&Gitee
目录 Git Git介绍 安装 命令学习 Git的作用 git与svn比较 Git,GitHub,GitLab,Gitee Git工作流程 Git常用命令 在仓库目录终端下 - 设置全局用户 在仓库目 ...