项目

一般

简介

工作任务 #2217

由 匿名用户 更新于 8 个月 之前

1.编写PLC管理基类
2.开发Modbus资源,包含ModbusTcp客户端和ModbusRTU

9月25日
1.编写modbus资源设计文档。创建KPLC基类,分为两个部分:UI界面基类、功能实现基类。
2.学习modbus总线的基本知识,了解modbusTcp和modbusRtu是什么、是如何传递信息的。

9月27日
1.研究KVision基类的编写架构,KImage的PLC基类实现代码架构
2.写出Modbus资源的U界面,查看Modbus调用所需的库中的相关参数
3.由于不清楚要KPLC是否要调用KToolBase这个基类,不清楚命名空间的使用,而且不太理解之前代码的头文件写法,对基类如何编写和设计有点混乱。明天请教一下峰哥。

9月28日
1.查看KVision中KServerTool和KServerDevice的代码,了解工具调用资源的参数传输和功能实现过程
2.跟锋哥讨论后确定了编写思路,按照KModbusManage类的代码结构,编写KPLCBase基类,按照ServerDevice资源编写KModbus资源

9月29日
1.由于pro缺少serialbus和serialport,我先尝试在终端下载相关的库,不过下载出现了问题。之后尝试在官网下载相关的库。也出现部分库不能够下载的问题。尝试了几次不行之后,重新下载qt5.15.2,下载完成后还是出现pro缺少库文件,明天再尝试其他方式

9月30日
1.搞定pro模块调用问题,由于之前使用的apt源在下载qt时不能下载serialbus和serialport模块,所以在官网和apt下载相关库都是不行的,重新下载qt也不会下载这两个模块。之后通过换apt源,最后成功下载
2.编写KPLCBase基类,能够基本知道基类的使用和变量设置思路,完成Modbus资源连接和断开功能,是否可行还需要下一步验证。

10月8日
1.参照KModbus类的代码,学习四种寄存器读的方式,读线圈,读保存寄存器,读输入寄存器,读离散输入寄存器,并在代码上实现了前三个读的方式。
2.添加KPLCBase基类的函数:类型转换和线圈的具体实现

10月9日
1.编写离散读输入寄存器、写线圈和写寄存器的代码,重新调整了UI界面,方便实现Tcp/Rtu输入界面的切换
2.学习connect函数的使用,emit信号传递时机

10月10日
1.由于没有相似的ui设计代码,设计combox控件触发信号和执行功能之间的信号连接不太会设置,并且跨文件调用参数时出现一些问题,可能需要花时间学习一下
2.大致完成了Modbus资源的初始化,明天完善一下功能

10月11日
1.实现了连接和断开的功能实现,明天研究读取按钮的实现。
2.目前的设计思路是通过字典界面的execut按钮来弹出UI界面实现功能,不过这样相当于不使用了字典功能,明天我思考一下,跟锋哥讨论一下这样写是否可行

10月12日
1.学习信号机制,实现不同界面的信号跳转机制。
2.研究不同类对象调用同一种类对象需要如何操作。
3.修改字典界面的实现功能,将字典按键与ui界面绑定,实现设备资源对象的参数共享。

10月14日
1.学习类对象的创建时机。了解在何时创建、在运行功能时判断类对象存在的条件
2.调整了类对象的创建位置,增加了连接状态显示并增加了不同连接状态下的ui显示
3.在初始化类参照薛茂的KPLCWrite类,能够增删表格并读取其中的数据,为读取功能按钮增加输入参数,明天进一步完善读取按钮的功能实现

10月15日
1.由于设备连接的具体代码实现内容太多,自己编写很难检查错误,故改成用锋哥原来的KModbus类作为KPLCBase基类,用KModbusTcpClient类和KModbusRTUSerial类作为功能实现类
2.由于基类的变动,我重新调整了UI与功能实现的连接代码,最终还是改为executed按钮打开UI界面
3.由于锋哥的类型使用了qt的关键字,而字典中只有c++的关键字,今天尝试用字典的方法设置输入输出问题较多,明天我还是改为只在UI界面中实现
4.编写过程中遇到不同类参数调用问题,故花了点时间思考并学习如何调用类。在不同类中调用另一个类的值,由于参数的私有和公有属性,方法有所不同,由于需要封装,常常使用类函数传递类的参数

10月16日
1.完善了连接、断开和读取的功能,并能够编译成功生成so文件,不过我目前设置在工具界面中,需要调试验证
2.学习了命名空间和跨文件调用的声明的方法

10月17日
1.在打开UI界面的时候出现了问题,目前修改了combox控件选择串口网口的输入参数界面初始化,label显示初始状态,修改界面的状态表。
2.现在还存在的问题是点击连接按钮时程序会崩溃,目前还不知道原因,明天开会正好问问锋哥

10月21日
1.解决了程序奔溃问题。整理了问题解决文档。
2.能够实现TCP的连接,rtu的连接目前还不太会,明天请教一下别人
3.能够实现多地址读取string类型的值。其他类型目前还实现不了,我明天再检查一下原因

10月23日
1.由于之前Modbus服务器的寄存器高低位不同导致输出有误,调整后多个类型的值都可以读取
2.研究了两天还是不太会同步线程,今天尝试了用connect函数但是未能够连接。明天再尝试一下

返回