项目

一般

简介

工作任务 #2323

KVision资源开发:三菱PLC资源

由 匿名用户 在 7 个月 之前添加. 更新于 3 个月 之前.

状态:
已关闭
优先级:
普通
指派给:
-
开始日期:
2024-11-25
计划完成日期:
2024-12-06
% 完成:

80%

预期时间:

描述

2024年11月25日
1.QMELSEC库,配置完发现只有3e的读取和写入。换个库
2.libmcprotocol库
(1)libmcprotocol库中types.c中报错“unknown type name ‘intpacket 16_t’ ”
将intpacket16_t改为int16_t后解决
(2)可以成功连接,但是没有相关函数是关于地址的写入的。不是很懂怎么进行读写的。
3.mcprotocol库
(1)报错:1: error: bot.o: in function `main':
把bot.c中的main改成main_bot后解决
(2)补充bot.h缺源文件中函数的声明
2024年11月26日
1.disconnect(&bot);报错提示找不到对应的函数模版参数
但是头文件bot.h是有disconnect这个函数的声明和实现的
在qt中,头文件定义的函数名也不加粗,鼠标放上去也不会想别的函数一样有信息。
尝试修改函数名,解决问题。具体报错原因未知。
2.调用libmcprotocol库(C静态库)时出现undefined reference to
头文件使用extern “C”进行了修饰后解决报错
3.libmcprotocol库虽然可以实现通讯但是读写需要查阅三菱PLC的文档来获取如何构造和解析MC协议数据包的具体信息,难度较大,重新考虑只支持3e帧的QMELSEC库
2024年11月27日
1.修改QMELSEC开源库头文件melsec_3e.h
(1)将函数build设为公共
(2)将build函数的参数char code2改为const char code2
2.写入时报错超时或Failed to write to PLC: The remote host closed theconnection
调试发现将地址转换结果为0,即没有转换成功,原因是包含了字母。将转换前的地址修改为address.mid(1)。但是还是显示读取超时,继续排查。
经过排查,发现两个版本的测试软件跟自带的plc读取和写入也是不能正常使用,显示超时。那应该不是代码的问题。
2024年11月28日
1.通过调试对比自己的报文和能够正常读取的报文,发现在软元件类型后面缺个星号。所以测试软件接受不到我发送的报文。故修改QMELSEC库中的build函数,在软元件类型后面追加星号*。至此可以正常向测试软件发送报文,测试软件也可以正常返回报文。返回的报文和正常写入的报文一样,但是我还是不能够写入数据。
2.尝试在发送的报文添加0000,返回报文后直接强制断开plc,也不能正常写入
2024年12月11日
1.三菱plc资源第三方库验证读写功能。
一直写入不了D100,检查发现值在寄存器D64写入了。
检查报文后发现是测试软件有问题,他表示地址部分的报文没有将10进制转为16进制
D100他的报文表示为D* 000100
正常的报文应该是D* 000064
2024年12月12日
1.通过分析读取int和string类型数据123的区别,分析其报文数据组成,以便修改QMELSEC库的函数
2024年12月20日
1.增加写入D区数据类型int、double和string对应的报文函数。并测试没问题
2024年12月24日
三菱通信测试程序
1.增加将字节数据转换为位数据的函数
2.增加读取数据功能:bool类型
3.解决发送和接受的报文完全相同,但是还是提示读取错误的问题
2024年12月25日
三菱通信测试程序
1.增加读取数据功能:string类型
(1)解决乱码问题
(2)解决字节次序问题
2024年12月26日
三菱通信测试程序
1.增加读取数据功能:int类型
(1)解决读取数据不正确的问题
(2)解决字节次序问题
2024年12月27日
三菱通信测试程序
1.增加读取数据功能:float类型
(1)遇到读取数据不正确的问题 未解决
具体为QByteArray类型的4位16进制数据转为uint16_t类型的十进制数据时得不到预期结果
2024年12月30日
三菱通信测试程序
增加读取数据功能
(1)float:问题:读取时若数字过长会四舍五入
(2)double:问题:读取与写入的数据不同
(3)short:解决读取与写入的数据不同的问题
2024年12月31日
1.解决写入double类型数据时结果为0 的问题
由于其中的字符流输入出错,最终导致decimalValue为默认值。
将输入字符流的数据类型从char[]改为string后解决
2.关于double、float类型数据输出时数据自动进行四舍五入的问题
经查询是qDebug() 默认使用一定的精度来格式化浮点数输出。
3.将写入、读取的代码加入到KMelsecDevice,未测试。
2025年1月2日
1.修改参数界面中关于编码格式的combo显示
2.解决报错: error: ‘KVision::General::KGeneral’ is not a base of ‘KDeviceManagement::KPLCBase::NetConnectParam’
3.往KPLCWrite添加KMelsecDevice资源
2025年1月3日
1.解决三菱plc编码方式变量的ui显示问题
2.解决西门子plc连接失败的问题,报错提示为:Error 113 : TCP : Unreachable peer
3.问题:三菱plc可以正常连接,但是读取时就提示
QObject::killTimer: Timers cannot be stopped from another thread
QObject::startTimer: Timers cannot be started from another thread
未解决
2025年1月6日
1.读取失败并显示:
QObject::killTimer: Timers cannot be stopped from another thread
QObject::startTimer: Timers cannot be started from another thread
增加socket = new QTcpSocket();解决上诉报错问题
2.运行读取时:
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
原因:在循环线程中直接调用读取函数中的socket,即跨线程调用socket这是不被允许的。
修改成在循环线程发送开始读取的信号即可解决
2025年1月7日
1.三菱plc中长时间循环读取:报错QList容器溢出。测试了西门子plc长时间读取却不会,怀疑是具体读取的代码不一样,在排查。
长时间读取后崩溃情况
会 string double float bool
不会 int short
2.读取D区和M区是选择对应没有实现的数据类型还是有值读出,在排查原因
2025年1月8日
1.将bool类型的输出值改为True、False。
2.测试长时间读取导致的QList内存问题,未解决
2025年1月9日
1.西门子和三菱plc资源的写入点击后都没反应,怀疑是误删了某个函数。排查过后发现是给参数赋值的函数writeData未调用。
2.解决在西门子和三菱plc资源中,改变数据类型后,即使在该存储区没有对应数据类型读取和写入的具体实现但依旧不会报错的问题。

历史记录

#1 由 匿名用户 更新于 7 个月 之前

  • 描述 已更新。 (diff)
  • 状态新建/重开 变更为 进行中

#2 由 匿名用户 更新于 7 个月 之前

  • 描述 已更新。 (diff)

#3 由 匿名用户 更新于 7 个月 之前

  • 描述 已更新。 (diff)

#4 由 匿名用户 更新于 7 个月 之前

  • 描述 已更新。 (diff)

#5 由 匿名用户 更新于 7 个月 之前

  • 描述 已更新。 (diff)

#6 由 匿名用户 更新于 7 个月 之前

  • 描述 已更新。 (diff)

#7 由 匿名用户 更新于 6 个月 之前

  • 描述 已更新。 (diff)

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

  • 描述 已更新。 (diff)
  • % 完成0 变更为 10

#9 由 匿名用户 更新于 6 个月 之前

  • 描述 已更新。 (diff)

#10 由 匿名用户 更新于 6 个月 之前

  • 描述 已更新。 (diff)

#11 由 匿名用户 更新于 6 个月 之前

  • 描述 已更新。 (diff)

#12 由 匿名用户 更新于 6 个月 之前

  • 描述 已更新。 (diff)
  • % 完成10 变更为 20

#13 由 匿名用户 更新于 6 个月 之前

  • 描述 已更新。 (diff)

#14 由 匿名用户 更新于 6 个月 之前

  • 描述 已更新。 (diff)

#15 由 匿名用户 更新于 6 个月 之前

  • 描述 已更新。 (diff)

#16 由 匿名用户 更新于 6 个月 之前

  • 描述 已更新。 (diff)

#17 由 匿名用户 更新于 6 个月 之前

  • 描述 已更新。 (diff)

#18 由 匿名用户 更新于 5 个月 之前

  • 描述 已更新。 (diff)

#19 由 匿名用户 更新于 5 个月 之前

  • 描述 已更新。 (diff)

#20 由 匿名用户 更新于 5 个月 之前

  • 描述 已更新。 (diff)

#21 由 匿名用户 更新于 5 个月 之前

  • 描述 已更新。 (diff)

#22 由 匿名用户 更新于 5 个月 之前

  • % 完成20 变更为 80

#23刘俊锋 更新于 3 个月 之前

  • 状态进行中 变更为 已解决

#24刘俊锋 更新于 3 个月 之前

  • 状态已解决 变更为 已关闭

导出 Atom PDF