百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

使用 KEPServer的User Configuraable 配置通信报文

bigegpt 2024-08-19 12:06 2 浏览

U-con(User Configuraable)

一般来说,我们在日常的项目中碰到的底层设备,使用的都是标准的协议。所谓的标准协议就是通信双方约定俗成的一组规则,是通信双方必须共同遵从的一组约定。比如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,设备之间才能相互通信交流。它的三要素是:

语法:即数据与控制信息的结构或格式;

语义:即需要发出何种控制信息,完成何种动作以及做出何种响应;

时序:事件实现顺序的详细说明。

然而并不是所有设备都遵循标准的协议,在实际项目中,我们会碰到很多非标准协议的通讯设备,这时 KEPServer 上的标准的驱动程序就无法适应这些设备的通信。但是 KEPServer 的相关开发人员已经考虑到这种情况,使用者可以通过 u-con driver 配置出合适的通信报文。下面我们针对这种场景的实际使用做出详细说明:

1.1 U-con 配置

1)新建一个 channel,选择 U-con driver;

2) 配置串口属性,之后就一直是“下一步”即可;

3) 新建一个 device,一直“下一步”即可;

4) 配置通信报文,双击device,在弹出的对话框中选中“Transaction Editor”;


5) 在弹出的对话框中,新建一个 tag;

6) 当成功创建后,就要编辑 tag 的读写命令,这个要根据设备供应商提供 的资料文档而定。比如有些设备读取数据的方式是一问一答,这就要上 位机程序发送读命令告诉设备要读取的数据。有些设备是不管有没有上位机程序连接,一直往外发送数据,这时上位程序只需要解析数据包即可。这里为了介绍方便,设备是采用一问一答的方式,同时读命令为 “>00VD0284”,响应报文“<00VD028400001234”,写命令“>00WD0284+ 数据”,响应报文“<00VD0284+数据”;

7) 构造写命令

8) 保存编辑

9) 新建标记点

到此,u-con 的基本配置就结束了,当然 u-con 还有很多强大的功能并没有使用上,相关的功能只能等待以后用到才能一一了解。

1.2 u-con 的细节应用

1)Communication diagnostic 当编辑好设备的通信报文,可以通过连接设备检验编辑的正确性。但是如果身边没有设备可用或者发送的命令,设备却没有响应,这时可以通过查看通信报文来检查。KEPServer 提供一个 Communication diagnostic 给使用者查看发送 和接收的报文。

A. 启 用 Communication diagnostic , 双 击 channel ,点击 General-Enablediagnostic;

B. 打 开 Communication diagnostic ,点击工具栏 view-Communication diagnostic;

1.3 KEPServer 使用延伸

项目中使用 KEPServer,碰到一些使用上的问题,通过查找资料、KEPServer 技术人员指导和自我的测试验证,总算得到解决,以下是问题和解决方法:

1) Q:(mobdus 协议)按照设备资料提供的地址,添加点,发现不能如期采集到设备数据?

A:在资料提供的地址基础上加 1,极个别设备有可能要加 2(就是一些寄存器起始地址为 0,而又用双字存储数据的设备),因为对于 mobdus 协 议来说,0 这个地址是作为广播地址,因此不能用作寄存器地址,所以无 论哪种模式下的 mobdus 协议的起始地址都为 1。

2) Q:在地址正确的提前下,发现读取的数据有误?

A:针对不同协议或者设备,在保证地址正确的前提下,还应该检查数据类 型,比如西门子 s7-200 的 m 开头的地址就可以有几种类型选择,所以在 选择地址的数据类型时最好看一下帮助文档,同时还应该根据设备的寄 存器或者数据来选择对应的数据类型,比如实际数据有正负之分,就应 该选取 short 等有符号类型,又或者数据实际范围只有 0~128,就选择 byte 等。

3) Q: 在地址和数据类型都正确的前提下,读取的数据仍然有误?(数据是双 字,即 float、Dword 等 32位的数据类型)。

A:这时可以考虑是不是设备的数据高低位和 KEPServer 数据的高低位不一致,可以通过 device 的属性——setting-Data encoding,表示数据编码。

4) Q:在不添加数据处理程序时,对数据进行初步的处理?

A: 可以对每个 tag 的属性scaling 进行设置,比如选择线性变化时,可以 通过设置 Raw Value Range 的 High 和 Low 来对原始数据进行放大缩小。

Linear 公式:

(((ScaledHigh - ScaledLow)/(RawHigh - RawLow))*(RawValue - RawLow)) + ScaledLow;

Square root 公式:

(Square root ((RawValue - RawLow)/(RawHigh - RawLow))*(ScaledHigh - ScaledLow)) + ScaledLow。

5) Q:因为某一设备通讯中断,导致同一 channel 下面的其他设备通讯阻塞?

A: 在同一信道下的 device,KEPServer 是采取轮询的方式通讯的,但是对于每个信道,却是并行的,因此最好的办法是采取每个信道对应一个device。但是根据 KEPServer 技术人员所说,可以通过设置 device 属性Auto-Demotion(自动降级),让该设备不阻塞同一信道下的其他 device。

6) Q:在 Datalogger 中,把所有信道的 device 放在同一个 Logger,发现某些设备数据不记录而某些设备却能记录?

A: 跟信道下设备阻塞一样的道理,因为在同一个 Logger 下,所有的 tag 都是以轮询的方式进行,当某一个 tag 的通信质量为 bad 时,就会阻塞下 面的 tag,为了避免这种情况最好的方法是每个 device 对应一个 Logger。

7) KEPServer 的设置或者配置,有些是可以在运行过程中修改的,有些是不可以,当碰到不可以的情况时,如果修改只保存没有重新启动,KEPServer 只以没修改前的设置进行运作。

相关推荐

悠悠万事,吃饭为大(悠悠万事吃饭为大,什么意思)

新媒体编辑:杜岷赵蕾初审:程秀娟审核:汤小俊审签:周星...

高铁扒门事件升级版!婚宴上‘冲喜’老人团:我们抢的是社会资源

凌晨两点改方案时,突然收到婚庆团队发来的视频——胶东某酒店宴会厅,三个穿大红棉袄的中年妇女跟敢死队似的往前冲,眼瞅着就要扑到新娘的高额钻石项链上。要不是门口小伙及时阻拦,这婚礼造型团队熬了三个月的方案...

微服务架构实战:商家管理后台与sso设计,SSO客户端设计

SSO客户端设计下面通过模块merchant-security对SSO客户端安全认证部分的实现进行封装,以便各个接入SSO的客户端应用进行引用。安全认证的项目管理配置SSO客户端安全认证的项目管理使...

还在为 Spring Boot 配置类加载机制困惑?一文为你彻底解惑

在当今微服务架构盛行、项目复杂度不断攀升的开发环境下,SpringBoot作为Java后端开发的主流框架,无疑是我们手中的得力武器。然而,当我们在享受其自动配置带来的便捷时,是否曾被配置类加载...

Seata源码—6.Seata AT模式的数据源代理二

大纲1.Seata的Resource资源接口源码2.Seata数据源连接池代理的实现源码3.Client向Server发起注册RM的源码4.Client向Server注册RM时的交互源码5.数据源连接...

30分钟了解K8S(30分钟了解微积分)

微服务演进方向o面向分布式设计(Distribution):容器、微服务、API驱动的开发;o面向配置设计(Configuration):一个镜像,多个环境配置;o面向韧性设计(Resista...

SpringBoot条件化配置(@Conditional)全面解析与实战指南

一、条件化配置基础概念1.1什么是条件化配置条件化配置是Spring框架提供的一种基于特定条件来决定是否注册Bean或加载配置的机制。在SpringBoot中,这一机制通过@Conditional...

一招解决所有依赖冲突(克服依赖)

背景介绍最近遇到了这样一个问题,我们有一个jar包common-tool,作为基础工具包,被各个项目在引用。突然某一天发现日志很多报错。一看是NoSuchMethodError,意思是Dis...

你读过Mybatis的源码?说说它用到了几种设计模式

学习设计模式时,很多人都有类似的困扰——明明概念背得滚瓜烂熟,一到写代码就完全想不起来怎么用。就像学了一堆游泳技巧,却从没下过水实践,很难真正掌握。其实理解一个知识点,就像看立体模型,单角度观察总...

golang对接阿里云私有Bucket上传图片、授权访问图片

1、为什么要设置私有bucket公共读写:互联网上任何用户都可以对该Bucket内的文件进行访问,并且向该Bucket写入数据。这有可能造成您数据的外泄以及费用激增,若被人恶意写入违法信息还可...

spring中的资源的加载(spring加载原理)

最近在网上看到有人问@ContextConfiguration("classpath:/bean.xml")中除了classpath这种还有其他的写法么,看他的意思是想从本地文件...

Android资源使用(android资源文件)

Android资源管理机制在Android的开发中,需要使用到各式各样的资源,这些资源往往是一些静态资源,比如位图,颜色,布局定义,用户界面使用到的字符串,动画等。这些资源统统放在项目的res/独立子...

如何深度理解mybatis?(如何深度理解康乐服务质量管理的5个维度)

深度自定义mybatis回顾mybatis的操作的核心步骤编写核心类SqlSessionFacotryBuild进行解析配置文件深度分析解析SqlSessionFacotryBuild干的核心工作编写...

@Autowired与@Resource原理知识点详解

springIOCAOP的不多做赘述了,说下IOC:SpringIOC解决的是对象管理和对象依赖的问题,IOC容器可以理解为一个对象工厂,我们都把该对象交给工厂,工厂管理这些对象的创建以及依赖关系...

java的redis连接工具篇(java redis client)

在Java里,有不少用于连接Redis的工具,下面为你介绍一些主流的工具及其特点:JedisJedis是Redis官方推荐的Java连接工具,它提供了全面的Redis命令支持,且...