做了个工控项目,拿下3500奖金!它好在哪?分析下这个有趣的设计

嘉丽科技讨论 2024-06-22 08:42:16

一个悬赏项目,奖金3500元。

要求:开源一个8路模拟量采集器。

并实现8个功能/需求:

作者是否能全部完成?

他又要如何实现这些需求?

一、作者是否完成需求?项目需求完成情况

8路模拟量采集转RS485,分辨率16位,支持通道隔离

完成

量程:0-20mA/4-20mA,-150-150mV、-500-500mV、-1-1V、0-2.5V、-5-5V、0-10V、-10-10V

完成

两线制/三线制/四线制传感器接线方式

完成

标准Modbus-RTU协议

完成

用户需自行编写上位机测试软件,能够接收到采集的数据并显示,软件需带有嘉立创EDAlogo元素

完成

自行设计或匹配公版外壳

完成

支持5~36V电压输入,接口防静电、防浪涌、防雷击等级3级

仅支持9-36V电压输入

支持电流/电压同时采集

完成

电压/电流采集状态由跳线切换

由拨码开关切换

可以看到,作者完成了大部分项目需求,但有2处改动,他为啥这么做?

说好的5-36V,咋成了9-36V?

抛开使用场景谈需求,就是耍流氓~

模拟量采集器主要应用于各种信号采集场景,例如:汽车测试、环境监测、工业控制、电赛题练习等。可以将物理量的模拟信号转换成数字信号,然后将其传输到计算机中进行处理和记录、监测和测量、控制和调节、数据分析和优化、以及故障诊断和预测。

综上所述,这是一个工控类项目,在实际的应用场景中,5V效率不高,9V却更为常见。

因此,作者在和嘉立创EDA陈工商议一致后,将电压输入修改为了9V-36V 。

说好的跳线切换采集状态,为什么选择拨码开关?

其实呢,就是个人选择。跳线切换与拨码开关都可以实现同时测量电压或电流。且拨码开关可以根据使用场景灵活切换,所以选择了这个方式。

那作者是如何实现当前需求的呢?

下方分享一下该项目的设计方案+测试视频!

三、硬件实现方案

系统整体框图

懂行的小伙伴都知道,这项目是非常考验PCB布局布线功力的!看看作者是咋设计的吧~

原理图_ 前端及量程切换

原理图_ CPU+485

PCB图

1.RS485

485采用隔离模块,并增加TVS,气体放电管,实现防静电、防浪涌、防雷击。

2.ADC+基准

①支持pin2pin直接替换18位的ADS8988

②R230=1K,R229=NC 选外部基准

③如果想用内部基准R230=NC,R229=1K

④ADC选ADS8688 16位ADC

3.电源

DC9-36V电源从P9端子2,3脚输入;

一路经TPS5450降压成5V,1117-3.3V降纹波供给CPU及485模块;

另一路经U21隔离电源模块,输出正负15V;

78L12,79L12线性稳压输出正负12V;

U13稳压成5V供给运放,以及ADC模块。

4.采样前端

如何实现8量程采样呢?

继电器不通电,ADS8688 可以通过软件设置量程,直接采样0-5.12V、±5.12V、0-10.24V、±10.24V。

增加拨码开关,SW 2-5刀头短接,输入通道并接120欧,实现电流档 0~20mA/4~20mA。

继电器合上,增加拨码开关,SW 1-6刀头切换AD620的放大倍数,实现 -150~150mV、-500~500mV;SW 3-4刀头切换单双极信号。

四、软件实现方案

单片机采集端流程图

PC端程序流程图

1.PC端界面

PCB端功能简单,界面也简单,有串口设置,状态显示,通道设置,采集显示;根据拨码开关,选择电流、电压档,选量程档位;用不到的通道可以"关闭"。

采用modbus-rtu协议。

默认从机地址0x02,波特率115200。

8个通道数据寄存器地址:0x00-0x07。

8个通道设置寄存器地址:0x10-0x17。

2.上位机软件运行

推荐下载 thonny ,然后把\venv\Lib\site-packages中的modbus_tk,serial库复制出来 如下图

接着你就可以愉快的玩耍python了。

【正文完】

关注我,看一手优质开源项目

0 阅读:2

嘉丽科技讨论

简介:感谢大家的关注