PLC生产方案,国产AT32F407芯片,支持CANOPEN控制伺服,支持扩展模块,以太网DHCP DNS客户端,服务器tcp modbus,AD DA 称重,直线,圆弧插补,G代码运动控制,10轴200K高速定位脉冲输出,AB相高速计数,2个RS232,1个RS485,1路以太网(8端口),1路CAN,特殊扩展模块最多20个,IO模块无限制,扩展之间无顺序安装。 能连接免费的云平台。 支持机械臂运动控制。 本代码用于商用,学习或者研究玩玩的绕行。 EH3兼容品牌PLC。 谨防盗版,没有售后, 注意,是生产方案,并非源代码。

国产AT32F407芯片搞PLC到底有多野?这玩意儿直接把工业控制玩成了乐高积木。咱先看主控——AT32F407这颗芯片跑起CANOPEN协议栈就跟喝水似的,伺服控制直接上硬菜。比如初始化CAN总线时,寄存器配置得讲究:

CAN_InitTypeDef CAN_InitStructure;
CAN_InitStructure.Mode = CAN_MODE_NORMAL;
CAN_InitStructure.AutoRetransmission = ENABLE;
CAN_InitStructure.ABOM = ENABLE; //自动离线管理
CAN_Init(CAN1, &CAN_InitStructure);
//对象字典配置直接怼PDO映射
map_pdo(0x1600, 0x607A, 0x00); //目标位置
map_pdo(0x1A00, 0x606C, 0x00); //速度反馈

这波操作能让伺服电机在1ms内响应指令,比某些进口PLC还利索。扩展模块才是真骚操作——随便插20个模块不带喘气的,IO点想加多少加多少。之前给注塑机项目搞了12个温度模块,直接并排插连顺序都不带讲究的。

网络功能这块玩得更花,DHCP自动分配IP时直接抄了路由器的作业:

uint8_t dhcp_discover[] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; //广播MAC
eth_send_packet(dhcp_discover, sizeof(dhcp_discover));

配上ModbusTCP服务器,扫码枪数据走TCP协议直接怼到寄存器里。现场调试时拿手机开个网页就能改参数,老师傅直呼不讲武德。

运动控制才是重头戏。直线插补算法直接硬件加速,G代码解析器跑得比某些数控系统还溜:

void linear_interp(int32_t target[3], uint32_t feedrate) {
    stepper_set_accel(5000); //加速度单位是脉冲/秒²
    stepper_move_to(target, feedrate); //三轴同步输出
}

10轴200K脉冲输出实测能带八个步进电机同时画圆,圆弧插补误差不超过2个脉冲。AB相计数用FPGA辅助捕获,200kHz信号丢帧?不存在的。

云平台对接更魔性,MQTT协议直接写进硬件协议栈。有次客户远程改了机械臂参数,车间网管愣是没发现数据走的阿里云通道。不过得提醒各位,这方案虽然支持机械臂正逆解算法:

kinematics_solve(&joint_angles, &cartesian_pos); //运动学解算

但拿去做商业项目记得自己搞定EMC测试。毕竟咱这生产方案只管硬件底层稳如狗,上层应用翻车了可别找售后。

最后说个骚操作——扩展口上挂过称重模块,AD采样率调到1kHz直接当振动检测仪用。所以说这板子就是个万能插座,想怎么插就怎么插,只要别插220V上去...(完)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐