news 2026/10/12 15:15:28

三菱FX3U与三菱PLSR源码:RUN中下载程序及脉冲输出与定位指令代码参考

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
三菱FX3U与三菱PLSR源码:RUN中下载程序及脉冲输出与定位指令代码参考

三菱FX3U源码,三菱PLSR源码 总体功能和指令可能支持在RUN中下载程序,支持注释的写入和读取,有脉冲输出与定位指令(包括PLSY /PWM/PLSR/PLSV/DRVI /DRVA 等指令)的代码, 但实际上下载进stm32都不支持,仅支持些简单功能。 应该是部分代码被修改了。 仅供参考。 支持波特率9600/19200/38400/57600/115200自适应

最近在折腾三菱FX3U源码移植到STM32的项目,发现这个移植版本就像被"阉割"过的瑞士军刀——看着功能列表挺唬人,实操起来可能连瓶盖都撬不开。咱们先来看段PLSR指令的残存代码:

void PLSR_Handler(uint32_t frequency, uint32_t pulseCount) { // 理论上的梯形加减速计算 static uint32_t accel_step = 500; // 加速阶梯 TIM2->ARR = SystemCoreClock / (2 * frequency); // 定时器重载值 // 以下代码段在移植时被注释 // __HAL_TIM_ENABLE(&htim2); // while(pulseCount--){...} }

这段代码暴露了两个问题:首先定时器配置明显没考虑加减速曲线,其次关键脉冲输出部分直接被注释。移植者可能直接搬了算法框架,却把硬件操作层给"截肢"了。

说到波特率自适应倒是有点意思,实测发现这部分居然能用。看看这个暴力检测法:

uint32_t AutoBaudRate() { uint32_t gap = 0; while(HAL_GPIO_ReadPin(UART_RX_GPIO_Port, UART_RX_Pin) == GPIO_PIN_SET); // 等待起始位 uint32_t t0 = HAL_GetTick(); while(HAL_GPIO_ReadPin(UART_RX_GPIO_Port, UART_RX_Pin) == GPIO_PIN_RESET); // 测量低电平时间 gap = HAL_GetTick() - t0; // 根据时间反推波特率(单位:ms) if(gap < 2) return 115200; else if(gap < 3) return 57600; else return 9600; // 其他情况默认最低波特率 }

这种时间差检测法虽然简单粗暴,但实测在干扰小的环境下确实能跑起来。不过遇到电磁环境复杂的情况,误判率估计能上天。

三菱FX3U源码,三菱PLSR源码 总体功能和指令可能支持在RUN中下载程序,支持注释的写入和读取,有脉冲输出与定位指令(包括PLSY /PWM/PLSR/PLSV/DRVI /DRVA 等指令)的代码, 但实际上下载进stm32都不支持,仅支持些简单功能。 应该是部分代码被修改了。 仅供参考。 支持波特率9600/19200/38400/57600/115200自适应

移植版里最让人哭笑不得的是注释读写功能。代码里确实留着注释结构体:

typedef struct { uint32_t address; char comment[32]; } PLC_Comment;

但在文件系统操作部分却只有空架子:

void SaveCommentToFlash() { // TODO: 实现flash写入 // 当前仅打印调试信息 printf("Pretend to save comments...\n"); }

这感觉就像在餐馆点了佛跳墙,结果端上来个写着"佛跳墙"的空碗。硬件资源受限可以理解,但至少把printf换成个LED闪烁提示啊!

折腾几天下来,建议想玩这个移植版的朋友先拿GPIO闪烁练手。比如这个残缺版PLSY指令:

void PLSY(uint32_t speed, uint32_t pulses) { HAL_GPIO_WritePin(PULSE_GPIO_Port, PULSE_Pin, GPIO_PIN_SET); for(int i=0; i<pulses; i++){ HAL_Delay(1000/speed); // 简易延时实现 HAL_GPIO_TogglePin(PULSE_GPIO_Port, PULSE_Pin); } }

虽然频率精度堪比机械怀表,但至少能看见LED在闪。想玩真·脉冲输出?还是老老实实调定时器的PWM模式吧。这个移植项目最适合当个"反面教材",看看别人是怎么在资源有限的情况下做功能裁剪的——当然,也可能是开发者留了一手,关键代码压根没放出来。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/13 3:22:32

LabVIEW与通用OCR识别技术的奇妙碰撞

labview.通用OCR识别技术在自动化检测和数据处理的领域中&#xff0c;LabVIEW作为一款功能强大且直观的图形化编程环境&#xff0c;一直备受工程师和开发者的青睐。而通用OCR&#xff08;光学字符识别&#xff09;技术&#xff0c;则为从图像中提取文本信息提供了有力手段。将这…

作者头像 李华
网站建设 2026/10/13 11:25:56

【GoFrame (GF) 】高性能、模块化、企业级的 Go 语言开发框架

文章目录前言一、核心架构1. 基础层&#xff08;Core Foundation&#xff09;2. 核心层&#xff08;Core Modules&#xff09;3. 扩展层&#xff08;Extended Modules&#xff09;4. 基础设施层&#xff08;Infrastructure&#xff09;二、关键技术特性解析1. 高性能设计2. 易用…

作者头像 李华
网站建设 2026/10/9 10:31:14

什么是射频组合功率

文章目录如何计算射频组合功率射频组合功率和实际发射功率、天线增益有什么关系天线越多&#xff0c;功率越大&#xff0c;信号越强么射频组合功率是指一台AP中多路射频的发射功率聚合&#xff0c;是AP天线的输入功率。射频组合功率经过天线增益后&#xff0c;再减去线路损耗即…

作者头像 李华
网站建设 2026/10/11 0:38:01

豆包真正的对手不是DeepSeek,而是千问

AI应用的终极战场正在悄然到来。根据新京报发布的最新榜单&#xff0c;截至2025年11月&#xff0c;中国AI应用月活排名前三为豆包&#xff08;2.72亿&#xff09;、DeepSeek&#xff08;1.63亿&#xff09;和夸克&#xff08;9546万&#xff09;&#xff0c;腾讯元宝以5305万位…

作者头像 李华