简介这份毕业设计文档面向电气自动化技术专业学生围绕电阻应变式传感器与PLC控制展开解决简易电子秤从信号采集到自动分拣的完整设计问题。内容涵盖传感器工作原理、模拟与数字电路信号处理、A/D转换、重量数字显示电路设计以及PLC外部接线图绘制、输入输出地址分配、梯形图编程与顺序功能图应用并延伸至传送带和分离机的自动控制逻辑。资源包为单个docx文件约110KB结构包含摘要、绪论、总体设计、硬件组成、软件组成及程序分析等章节可直接作为毕业设计参考模板或课程设计素材。目前已有166人学习适合需要完成传感器与PLC综合课题、撰写论文或准备答辩的读者可从中获取完整方案框架、电路与程序分析思路及参考文献指引。1. 从一份 2010 年的电子秤毕设说起它到底能跑通什么翻到这份《基于电阻应变式传感器电子秤毕业设计.docx》的时候我第一反应是这标题和正文对不上。标题写的是电阻应变式传感器电子秤正文里却大篇幅在讲大小球分离机的 PLC 控制任务书里还夹着用 PLC 控制传送带和分离机的要求。这种文不对题在 2010 年前后的高职毕设里其实很常见——学生把传感器检测、模拟电路、数字显示、PLC 顺序控制几个模块硬凑在一个课题里最后交出来的文档就成了一个混合体。但恰恰是这种混合体对现在做 plc 毕业设计、电子秤课程设计的人有参考价值。它完整走了一遍传感器取信号 → 模拟电路调理 → 数字显示 → PLC 逻辑控制执行机构的链路最大称重 1000 克、误差 ±5 克、分辨率 0.1 克这几个指标虽然不高但作为入门级复现目标刚刚好。适合电子电气、自动化、机电一体化方向的学生以及想快速搭一套称重 分拣演示装置的工程师。下面我按这份文档里有什么 → 怎么把它变成能跑的东西 → 哪里会翻车的顺序拆一遍。2. 电阻应变式传感器的信号链从应变片到 0.1 克分辨率2.1 惠斯通电桥为什么是绕不开的起点电阻应变式传感器的核心是一片贴在弹性体上的金属箔应变片。物体压上去弹性体微变形应变片跟着被拉伸或压缩电阻值变化量通常在几百微欧到几毫欧级别。这个变化量太小单靠一片应变片根本读不出来所以标准做法是接成惠斯通电桥。电桥四个臂一个或两个臂是应变片其余是固定电阻。无负载时电桥平衡输出电压接近零加载后应变片阻值变化电桥失衡输出一个毫伏级的差分电压。常见做法是用全桥接法四臂都是应变片灵敏度是单臂的四倍而且能自动补偿温度漂移。半桥次之单臂最差但最便宜。这里有个容易被忽略的点电桥的激励电压直接决定输出灵敏度。5V 激励下满量程 1000 克对应的输出可能只有 1~2mV/V也就是 5~10mV。这个量级用普通万用表根本测不准必须上仪表放大器。2.2 仪表放大器与 A/D 转换的选型信号从电桥出来之后第一级要解决的是共模抑制和低噪声放大。我一般会选 INA333 或 AD620 这类仪表放大器增益设在 100~1000 倍之间。增益怎么定拿满量程输出除以你想要的 A/D 输入范围倒推。假设满量程电桥输出 10mVA/D 参考电压 2.5V那增益大概需要 250 倍取整到 200~300 都行留点余量。放大后的信号进 A/D。分辨率要求 0.1 克满量程 1000 克意味着至少需要 10000 个刻度也就是 14 位以上的 A/D。常见做法是用 HX711 这类专为称重设计的 24 位 A/D 模块内置增益和稳压省掉一堆外围电路。如果坚持用通用 A/D比如 ADS111516 位也能满足但要注意它的输入范围是 ±6.144V 或 ±4.096V得算好前级增益别把信号顶到轨。# 以 HX711 为例的读数与标定逻辑伪代码跑在树莓派/STM32 上 import time class HX711: def __init__(self, dout_pin, sck_pin): self.dout dout_pin self.sck sck_pin self.offset 0 # 空载零点 self.scale 1.0 # 每克对应的原始计数 def read_raw(self): # 等待 DOUT 拉低表示数据就绪然后读 24 位 while self.dout.value() 1: pass raw 0 for _ in range(24): self.sck.value(1) raw (raw 1) | self.dout.value() self.sck.value(0) # 补码转有符号 if raw 0x800000: raw - 0x1000000 return raw def calibrate_zero(self, samples10): vals [self.read_raw() for _ in range(samples)] self.offset sum(vals) / len(vals) def calibrate_scale(self, known_grams, samples10): vals [self.read_raw() for _ in range(samples)] avg sum(vals) / len(vals) self.scale (avg - self.offset) / known_grams def read_grams(self): return (self.read_raw() - self.offset) / self.scale这段代码的关键在calibrate_scale放一个已知重量的砝码比如 500 克读出原始计数减去零点再除以 500得到每克多少计数。之后所有读数都套这个系数。参数上samples取 10 是为了平均掉噪声如果现场振动大可以加到 20~30代价是响应变慢。offset必须在空载时标定而且每次开机最好重标一次因为温漂会让零点缓慢移动。2.3 从原始计数到稳定显示滤波与判稳A/D 读出来的数会跳。0.1 克分辨率下最后一位来回蹦是常态。直接显示会闪得没法看所以要做滤波。最简单的是滑动平均窗口取 8~16 个点。好一点用一阶低通公式是y y α * (x - y)α 取 0.1~0.3。再讲究点用中值滤波先去掉脉冲干扰再滑动平均。判稳逻辑是另一个坑。电子秤要求放上去之后数字稳定了再锁定不能一直跳。常见做法是连续 N 次采样比如 5 次的极差小于某个阈值比如 0.2 克就认为稳定锁定显示。这个阈值要跟你的噪声水平匹配设太小永远判不稳设太大反应迟钝。3. PLC 顺序控制怎么落地I/O 分配、接线与梯形图3.1 三菱 FX2N-48MR 的 I/O 分配表怎么读文档里用的是三菱 FX2N-48MR48 个 I/O 点继电器输出型。输入 9 个点、输出 7 个点分配如下输入元件输入点输出元件输出点启动按钮 SB1X0下降 KM1Y0传感器 1 信号 SB2X1夹紧 KM2Y1下限位开关 SQ1X2上升 KM3Y2上限位开关 SQ2X3右行 KM4Y3大球信号 SB3X4左行 KM5Y4小球信号 SB4X5松开 KM6Y5右限位开关 SQ3X6传送带 KM7Y6左限位开关 SQ4X7停止按钮 SB5X10注意 X10 这个点。FX2N 的输入编号是八进制X0~X7 之后直接跳到 X10不是 X8。新手画接线图时最容易在这里写错把停止按钮接到 X8程序里却写 X10结果按了没反应。3.2 外部接线图的三个关键细节接线图本身不复杂但有几个地方容易翻车。第一FX2N-48MR 的输入是漏型还是源型要看 COM 端怎么接。国内常见做法是 COM 接 24V 正极输入点通过开关接到 0V这样开关闭合时输入点被拉低PLC 识别为 ON。如果你把 COM 接 0V开关接 24V逻辑就反了。第二继电器输出MR 型的公共端 COM 要分组接。FX2N-48MR 的输出 COM 通常分几组每组带几个点接负载时要注意别把不同电压等级的负载混在同一组 COM 上。第三传感器信号进 PLC 之前要确认电平匹配。文档里用的是信号开关本质是开关量直接进 X 点没问题。但如果你的传感器输出的是 0~5V 模拟量就得先经过比较器或 A/D 模块转成开关量不能直接怼到输入点上。3.3 顺序功能图到梯形图的转换文档里画了顺序功能图SFC用了单序列加选择序列的结构。SFC 转梯形图有固定套路每个步用一个辅助继电器 M 表示步与步之间的转换条件用串联触点实现转换时置位下一步、复位当前步。// 以下降步为例的梯形图逻辑三菱 FX 指令表形式 // M10 下降步M11 抓球步M12 上升步 // 转换条件M10 且 X2下限位→ 进入 M11 LD M10 // 当前在下降步 AND X2 // 下限位开关触发 SET M11 // 置位抓球步 RST M10 // 复位下降步 // 输出映射 LD M10 OUT Y0 // 下降电磁阀 LD M11 OUT Y1 // 夹紧电磁阀逻辑说明M10 是下降这个步的活动标志。当 M10 为 ON 且下限位 X2 被触发时程序置位 M11抓球步、复位 M10下降步结束。输出端 Y0 直接跟 M10 绑定M10 一 ON 下降动作就执行。这种步标志 转换条件的写法比一堆自锁互锁清爽得多调试时看哪个 M 亮就知道走到哪一步了。参数上要注意延时。文档里抓球和松球各延时 1 秒用定时器 T0/T1 实现K 值设为 10100ms 定时器 × 10 1 秒。如果现场气缸动作慢这个值要往上调别死守 1 秒。4. 避坑与排查这份毕设里最容易翻车的五个地方4.1 现象空载时显示不为零且缓慢漂移原因应变片电桥的零点温漂或者 HX711 的参考电压不稳。2010 年那批设计里很多人用 7805 直接给电桥供电纹波大、温漂也大。解决电桥激励改用基准源比如 REF3030或者在软件里做开机自动归零 定时归零。如果漂移是单调的大概率是弹性体受热膨胀检查传感器安装有没有预紧力。4.2 现象放上砝码后读数线性度差小重量准大重量偏原因弹性体进入非线性区或者 A/D 前级放大器饱和。1000 克满量程下如果放大器增益设得过高500 克以上信号就被削顶了。解决先测满量程输出反推增益留 20% 余量。然后用多点标定比如 0、200、500、1000 克拟合一条直线而不是只用单点系数。4.3 现象PLC 程序跑飞机械手动作顺序乱原因双线圈输出。文档里明确提到双线圈输出不可用但实际写程序时很容易在手动/自动模式切换处重复使用同一个 Y 点。解决所有输出点只在一个地方赋值用手动/自动标志位做选择而不是写两段 OUT 指令。三菱 FX 系列对双线圈的处理是后面的覆盖前面的但扫描周期内会出现瞬间误动作。4.4 现象按停止按钮后机械手立即停而不是完成周期后停原因停止逻辑写成了直接切断所有输出。文档要求是完成一个周期后回到原点再停。解决停止按钮只置位一个停止请求标志 M在原点步判断这个标志满足条件才跳转到停止状态。别用 ZRST 批量复位。4.5 现象传感器信号进 PLC 后抖动机械手反复抓取原因传感器信号没有做防抖或者信号持续时间太短PLC 一个扫描周期没采到。解决在 PLC 里加一个 0.1~0.2 秒的输入滤波定时器或者用上升沿触发。文档里特别注明力敏传感器产生的开关量在一个周期内不会消失就是怕这个信号丢了导致动作错乱。5. 把这份毕设变成可复现的验证流程我的实操习惯这份文档最大的价值不是它的电路有多精妙而是它给了一条完整的验证路径。我拿到类似资料后习惯按先仿真、再分模块实测、最后联调三步走这里说下具体怎么操作。第一步用 Proteus 或 Multisim 把模拟前端搭出来。电桥用四个 350Ω 电阻其中一个用可变电阻模拟应变片仪表放大器用 AD620 模型A/D 用虚拟电压表代替。先确认电桥输出随负载线性变化再确认放大器输出不饱和。这一步能排掉 80% 的电路设计错误不用焊板子。第二步PLC 程序单独跑。三菱的 GX Works2 自带仿真把梯形图敲进去用强制输入的方式模拟限位开关和传感器信号看输出点的动作顺序对不对。重点看三个地方原点复位逻辑、大小球分支判断、停止请求的处理。仿真跑通了再下载到实物 PLC。第三步联调时先断开机械执行机构只接指示灯。确认 PLC 输出顺序正确后再接电磁阀。接电磁阀之前一定先测线圈电阻和吸合电流确认在继电器输出点的额定范围内FX2N-48MR 单点 2A 阻性负载感性负载要降额。验证精度的时候我用一组标准砝码100g、200g、500g、1000g做四点标定然后拿 50g、300g、800g 做验证点看误差是否在 ±5 克以内。如果超差先查机械安装有没有侧向力再查软件标定系数。0.1 克分辨率下最后一位跳动 ±2 个字是正常的别跟它较劲。从那以后我每次拿到这种文档和标题对不上的毕设资料都强制走一遍先提取真实技术点、再补全缺失链路、最后按模块验证的流程而不是照着文档目录抄一遍。这份电子秤毕设的文档结构虽然乱但传感器信号链和 PLC 顺序控制这两块是实打实能用的把这两条线拆出来单独复现比纠结它标题写什么有意义得多。希望帮到你。本文还有配套的精品资源点击获取
