61850 MMS源码(二)

news2024/9/28 23:24:39

上一篇说了怎么下载,编译和运行mms相关的源码,以及如何抓包。这篇尝试对源码做出一些改动,并实际运行一下。
协议内容厚厚一本书,只是大概看了一下,个人比较习惯从代码入手看逻辑处理,从而理解协议。
我发现在examples/mms_utility/mms_utility.c文件中有各种读操作,但是没有写操作。因此我想自己加个-w参数来实现通过mms写数据。
首先我在examples/server_example_dynamic/server_example_dynamic.c中做了一点改动。
在这里插入图片描述
我注释掉了这一行,停止server对这项数据的自动更新。然后尝试自己通过client去写这项数据。
然后我运行/mms_utility去读这项数据,但是发现一个奇怪的问题。
在这里插入图片描述
不论我-r后面的入参写多具体,得到的都是一样的返回结果。抓包显示我发送的itemID也一直都是TMP1,然后我增加打印,发现数据在传入的时候出了问题
在这里插入图片描述
这个optarg只会接收第一个$之前的内容,于是求助chatgpt
在这里插入图片描述
然后给-r之后的参数加上单引号即可。(双引号试了不行)、
在这里插入图片描述
这样就得到了正确的数据。
在代码中增加-w相关的内容
在这里插入图片描述
在这里插入图片描述
之后执行,发现写入并不成功
在这里插入图片描述
之后在主机端进行单步调试,最后找到原因。
在这里插入图片描述
经查阅61850相关资料,MX类型的测量数据是不支持写入的。因为没细看协议内容,直接看源码,就会比较容易犯这种错误。我把写入的数据更换一下,重新做尝试。
在这里插入图片描述
这次选定这个约束属性为CF的值,查看了一下这个值的定义
在这里插入图片描述
看得出来数据类型是INT16,且不大于7。读出来是4.
在这里插入图片描述

然后再修改wirte的部分,将这个值改为5.
在这里插入图片描述
信心满满,但是运行结果还是报错了
在这里插入图片描述
这次的原因是创建iedServer时,还会设置writeAccessPolicies属性。除了协议规定那些约束属性的数据支持写入外,创建iedServer时还可以进行进一步的限制。
在这里插入图片描述
源码中默认的iedServerCreate只支持这三种。
在这里插入图片描述
因此可以增加CF属性也支持写入。为了尽量不对其他地方产生影响,我在examples/server_example_dynamic/server_example_dynamic.c的main函数中进行修改,并重新编译运行。
在这里插入图片描述
这次终于成功了!!!!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1980587.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

独立摄影师如何找到自己的第一批客户?

声明:此篇为 ai123.cn 原创文章,转载请标明出处链接:独立摄影师如何找到自己的第一批客户? | AI导航 ai123.cn 嘿,摄影师朋友们!咱都知道,想增加目标客户可不简单,推广难、竞争大&am…

Jmeter--http信息头管理器的使用(转载)

本文转载自: Jmeter—什么时候需要配置HTTP信息头管理器以及对应的参数如何输入_信息头管理器中的参数怎么调用-CSDN博客 1、抓包查看Request Headers(请求头)里Content-Type的信息,如下图: Content-Type的格式为&…

ROS2从入门到精通4-6:路径平滑插件开发案例(以B样条曲线平滑为例)

目录 0 专栏介绍1 ROS2路径平滑器介绍2 平滑器插件编写模板2.1 构造平滑器插件类2.2 注册并导出插件2.3 编译与使用插件 3 基于B样条曲线的路径平滑 0 专栏介绍 本专栏旨在通过对ROS2的系统学习,掌握ROS2底层基本分布式原理,并具有机器人建模和应用ROS2…

了解一下这个基质:粘弹性可编码,organoids培养的好帮手

Dynamic matrices with DNA-encoded viscoelasticity for cell and organoid culture是发表于《nature nanotechnology》的一篇文章,介绍了一种基于DNA的动态交联基质DyNAtrix,用于细胞和类器官培养。DyNAtrix由DNA库与超高分子量聚合物自组装形成&#…

联手体系结构专业委员会:“用户态GPU池化技术”术语发布 | CCF术语快线

本期发布术语热词:用户态GPU池化技术(User-space GPU Pooling)。 用户态GPU池化技术 作者:陈飞(趋动科技)张伟韬(趋动科技)李诚(中国科学技术大学) 开篇导语…

python使用boto3访问S3对象存储并列出百万级文件对象的存储信息

本文提供了在python3环境里使用boto3访问S3对象存储,并列出百万级文件对象的存储信息的示例代码。 一、测试环境 操作系统和python版本如下: [rootlocalhost boto3]# cat /etc/os-release NAME"openEuler" VERSION"22.03 LTS" I…

【实战指南】轻松上手:部署与应用清华智谱GLM大模型

部署一个自己的大模型,没事的时候玩两下,这可能是很多技术同学想做但又迟迟没下手的事情,没下手的原因很可能是成本太高,近万元的RTX3090显卡,想想都肉疼,又或者官方的部署说明过于简单,安装的时…

GreatSQL 8.0.32-26 今日发布

GreatSQL 8.0.32-26 今日发布 版本信息 发布时间:2024年08月05日 版本号:8.0.32-26, Revision a68b3034c3d 下载链接:https://gitee.com/GreatSQL/GreatSQL/releases/tag/GreatSQL-8.0.32-26 用户手册:https://greatsql.cn/docs…

【知识专栏丨python数分实战】天猫订单数据分析及可视化|taobao天猫订单接口

今天这篇文章将给大家介绍天猫订单数据分析及可视化案例。 import pandas as pdimport numpy as npfrom pyecharts.charts import Pie,Bar,Line,Map,Map3D,Funnelfrom pyecharts import options as optsimport matplotlib.pyplot as pltimport warningsimport seaborn as snsfr…

《刚刚问世》系列初窥篇-Java+Playwright自动化测试-7-元素基础定位方式-下篇 (详细教程)

软件测试微信群:https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介 上一篇主要是讲解我们日常工作中在使用Playwright进行元素定位的一些比较常用的基础定位方式的理论基础知识以及在什么情况下推荐使用。今天这一篇讲解和分享一下剩下部分的基…

重塑未来体验:边缘计算与云原生的完美邂逅

🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、引言 1、云原生的兴起 2、边缘计算的兴起 二、边缘计算基础 …

LoadRunner12 添加事务并添加检查点

1、先要添加事务开始函数lr_start_transaction("登陆事务");,在接口上方右击点击-插入-开始事务。输入事务名称; 2、在某个接口想法 右击点击-插入-结束事务,输入事务名称,与开始事务名称要保持一致,lr_end_…

springboot自动装配(源码分析)

利用spi机制发现配置类并注册到spring容器中 以下示例使用springboot:3.2.1版本 相关注解 SpringBootApplication EnableAutoConfiguration AutoConfigurationImportSelector 使用Import导入AutoConfigurationImportSelector,随着springboot启动,会…

工业控制常用的EtherNet/IP、OPC UA协议的标签数据转发到另外的PLC寄存器地址

在工业自动化领域,越来越多的碰到标签方式通讯的设备,常用有CIP(基于EtherNet/IP) 的协议、OPCUA协议等,CIP协议主要是罗克韦尔/AB的PLC、欧姆龙NX/NJ系列的PLC等,OPCUA协议常见于工业机器人、智能焊接设备等。在不具备标签协议接…

AI绘画变现也有新思路,国风带你日进斗金!

在中国的文化传承中,古典的风韵总是能引发无尽的遐想和美感。 在现代化的今天,越来越多的人开始重新审视和欣赏那些古老的中国风,发现其中蕴含的深厚文化底蕴与无与伦比的美感。 特别是在影视、音乐、舞蹈等艺术形式中,国风元素…

【C++】C++特性揭秘:引用与内联函数 | auto关键字与for循环 | 指针空值

C语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载 本章将分享C增加的几种常见特性,主要内容为引用与内联函数 | auto关键字与for循环 | 指针空值,这些知识看似很多,实际也不少。本章篇幅长&#…

双笼转子三相感应电动机瞬态分析(7):定子绕组短路故障分析

1. 引言 2. 定子绕组短路时端电压约束条件 3. 双笼转子三相感应电动机数学模型 4. 仿真分析 5. 结论 6. 参考文献 1. 引言 定子绕组短路故障是三相感应电动机的典型故障情形之一,但其发生几率比缺相故障要低。根据电力系统的研究报告,单相短路在所有…

在仪器计量校准中,无尘车间洁净室检测有哪些方法和流程?

仪器计量校准行业内,无尘车间洁净室检测可以说是较为热门的业务,因为其预算高,且检测流程不是太繁琐,很多仪器计量校准机构也是设立相关实验室,专门处理相关仪器的检测。不过虽然许多机构想要涉足该领域,但…

ArcGIS自带的python安装第三方库

ArcGIS自带的python安装第三方库 文章目录 ArcGIS自带的python安装第三方库pip库安装安装setuptools库安装pip库 第三方库安装 在做项目时,用到了ArcGIS(非pro)中python中的arcpy库,但是又依赖其他外部库,而 Python2并不像Python3那样自带pip…

gitlab项目添加新成员

gitlab项目添加新成员 1、进入项目,找到settings----->点击Members 2、手动输入要添加成员的账号或者搜索,最后点击Add to project就可以了 choose a role permission 是为要添加的成员选择角色权限 补充: ‌Maintainer:拥…