「物联网应用案例」基于数传电台的组态王控制
采用亚控科技组态王结合亿佰特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设备都可以通过这种方式进行拓展。
使用GX Works2编程软件采用梯形图进行编程;
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串口参数配置
使用CX3G-PLC特殊寄存器的秒寄存器(D8013)模拟变化数据传输给保持寄存器(D0),用于组态王读取。

图4 模拟保持寄存器数据
配置一个控制点位,可以通过离散输入点位X006、X007进行就地控制,也可通过M2、M3利用组态王上位机进行远程控制。

图5 控制点位
首先创建一个基本组态王工程,设备组态与直接连接设备时方法相同,数传电台只有代替在原来RS485线缆的作用,不影响工程的配置。
这里我采用通用的MODEBUS RTU协议来配置组态王设备,如图6所示。采用PLC选项下的莫迪康公司的MODBUS RTU协议。

图6 组态王设备配置
点击下一步后选择对应的端口号,在上一节中我将PLC的MODBUS地址设为1,组态王的通信设备地址也设置为1,否则将无法正常通信。
从功能设计出发组态王需要配置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 变量配置表
制作一个包含离散量输入提示、线圈状态提示、线圈控制、保持寄存器读取的简单组态王界面,如图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启动完成,案例系统开始运行。
按下SB1按键LED亮起,组态王收到X06触发信号以及Y00线圈吸合信号,按下SB2按键LED熄灭,组态王收到X07触发信号以及Y00线圈释放信号。

图12 就地控制关灯
按下开灯按键Y00吸合LED亮起,按下关灯按键Y00释放LED熄灭。

图13 组态王开灯控制
以上便是本次案列测试环境搭建以及控制逻辑实现方式。采用此种控制方式,不只是方便布线,更是为后期升级提供更为方便的可能,减少布线能使工厂环境更加美观,故障查找更加方便。
当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少
我正在使用Ruby2.1.1和Rails4.1.0.rc1。当执行railsc时,它被锁定了。使用Ctrl-C停止,我得到以下错误日志:~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`gets':Interruptfrom~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.2/lib/spring/client/run.rb:47:in`verify_server_version'from~/.rvm/gems/ruby-2.1.1/gems/spring-1.1.
我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新rubygems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems
我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
说在前面这部分我本来是合为一篇来写的,因为目的是一样的,都是通过独立按键来控制LED闪灭本质上是起到开关的作用,即调用函数和中断函数。但是写一篇太累了,我还是决定分为两篇写,这篇是调用函数篇。在本篇中你主要看到这些东西!!!1.调用函数的方法(主要讲语法和格式)2.独立按键如何控制LED亮灭3.程序中的一些细节(软件消抖等)1.调用函数的方法思路还是比较清晰地,就是通过按下按键来控制LED闪灭,即每按下一次,LED取反一次。重要的是,把按键与LED联系在一起。我打算用K1来作为开关,看了一下开发板原理图,K1连接的是单片机的P31口,当按下K1时,P31是与GND相连的,也就是说,当我按下去时
MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc