# simulationBack **Repository Path**: summer-pocket-august/simulation-back ## Basic Information - **Project Name**: simulationBack - **Description**: 制瓶子传送带 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-03-28 - **Last Updated**: 2025-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 制瓶器同步板卡 U12 -> 5脚硬件中断检测IO U14 -> RS485(UART1,1脚 , 2脚 , 5脚)需要接地 U19 -> CAN1(1和2脚) ***操作说明及步骤*** 先启动任意一块板子,然后设置频率,进入同步模式,然后直到看到LCD上显示队长显示后,操作另一块板子,设置频率,然后进入同步模式,板卡会进行同步操作 **RS485串口波特率19200** **CAN波特率 500Kbps** 已完成的功能 1. 同步模式功能 , 其他板子去追赶队长频率 2. 当多块板子的其中一个身为队长的板子退出同步模式后,由剩余板卡来接替队长的身份 3. LCD界面显示 , 设定节拍 , 运行节拍 , 电机转速(**实际数据需要转换**) 4. 轻触按键和旋转编码器 5. 变频器 开/关,调整频率 6. 俩块板卡同时上电后,识别其中一个为队长 7. 同步模式下 ,调整队长的频率,队员跟着改变,并且显示到LCD上 及 队员完成同步功能 ### 2025 . 3 .28 发现的问题和需要改进的地方 1. 同步模式下 ,调整队员的频率,队长跟着改变 ~~2. 蜂鸣器驱动(旧板卡没有)~~ 1. 队列删除任意元素, ~~4. 时间差显示的bug问题~~ 1. 运行时间显示 ### 2025.4.1 发现的问题和需要加入的功能 1. 同步模式下 , 调整队员的频率,队长跟着改变 , 这个因为同步模式下队长无时无刻不在修改队员的频率,所以队员改队长有点复杂(从逻辑上讲队员改队长有点傻,看情况吧) 2. 运行时间显示 , 老土希望做到 999天,24小时,60分钟,60秒 这样子的,我暂时没有搞到需要运行这么长时间的设备 3. 队列????(删除 , 加入 ,等等操作) 4. 大于2块板卡之间的调试 , 因为我只有2块板子 , 所以只在2个板子之间的同步做了测试,硬件从头到尾都没有提供4块板子供给调试 5. CAN需要CAN盒子启动终端电阻功能,否则CAN消息发送失败 6. RS485如果用的是MAX3485芯片,需要将R0脚接上拉电阻,否则会造成死机,老土说要让软件有鲁棒性,需要解决这个问题 7. 硬件看门狗 8. 有时候俩块板子的时间差会卡在70 - 90(ms) 左右,这个大概率是因为 Offset = (double)(Distance * 0.25); 中的 0.25这个系数太小造成的,但是慎重修改这里,如果他在(70 ~ 90ms)能用尽量不要动这里 9. 目前我是用模拟板卡来代替实际变频器的数据 , 到时候显示的频率信息和实际的信息需要比例转换 ### 2025.4.2 暂时想到的就这些,有问题再补充 ~~有时候俩块板子的时间差会卡在70 - 90(ms) 左右,这个大概率是因为 Offset = (double)(Distance * 0.25); 中的 0.25这个系数太小造成的,但是慎重修改这里,如果他在(70 ~ 90ms)能用尽量不要动这里~~ 已解决,就是synchronizingFrequency函数中 的 0.5这个系数K的问题,这个值一定是和你的实际工况匹配出来的, 当前 K = 0.25,意味着每次调整频率的幅度较小。例如,Distance = 91ms,Offset = 22.75,调整幅度有限,可能不足以快速缩小差距。理论上,增加 K(如 1.0)可使 Offset = 91,调整幅度更大,加快同步,但可能导致过冲 所以**比例控制参数(如 K)对同步系统至关重要,过小可能导致收敛慢,过大可能导致振荡。建议结合实际测试,逐步调整 K 和 deadTime** ***所以你的系统中一定要去实际测试 K 和 deadTime 的值,然后再修改代码,否则可能导致同步结果差值过大,和同步速度*** 重构了之前CAN接收数据部分代码内容在CanInformationParseTask中,重构一小部分SyncLogicTask中的内容