尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

西门子S7-200 SMART PLC从入门到实战:硬件组态、编程与通信全解析

西门子S7-200 SMART PLC从入门到实战:硬件组态、编程与通信全解析 1. 项目概述为什么从S7-200 SMART开始你的PLC之旅如果你刚踏入工业自动化的大门面对琳琅满目的PLC品牌和型号感到无从下手那么西门子S7-200 SMART系列绝对是一个绝佳的起点。我从业十几年带过不少新人发现很多朋友一上来就想啃S7-1500或者博途TIA Portal全家桶结果被复杂的软件架构和庞大的功能库劝退信心受挫。S7-200 SMART不同它定位就是小型自动化项目的“瑞士军刀”兼顾了西门子品牌的可靠性和入门学习的友好性。简单来说S7-200 SMART是经典S7-200的升级版后缀“SMART”意味着更智能、更经济、更易用。它主要面向OEM设备、单机自动化、小型生产线等场景比如一台包装机、一个灌装站、一套简单的物料传送系统。它的编程软件STEP 7-MicroWIN SMART是独立的安装包小界面直观对电脑配置要求极低这让你能把精力完全集中在学习PLC的核心逻辑——梯形图LAD和指令系统上而不是和复杂的软件工程环境搏斗。从相关热搜词如“西门子smart200编程”、“plc编程入门基础知识”就能看出市场对它的入门需求非常旺盛。所以这篇笔记的目的不是罗列手册而是结合我自己的踩坑经验带你绕开那些官方文档里不会写的“暗礁”快速建立对S7-200 SMART的感性认识和实操能力。我们会从最核心的“如何与PLC对话”开始也就是硬件组态、软件连接和第一个程序的下载调试。2. 核心硬件与软件环境搭建工欲善其事必先利其器。玩转S7-200 SMART第一步不是写代码而是把“战场”布置好。这里面的门道直接决定了你后续学习的顺畅程度。2.1 硬件选型与认知不只是个“黑盒子”S7-200 SMART CPU模块长得方方正正但面板上每一个灯、每一个接口都有其使命。最常见的型号是CPU SR20/ST20/CR40等。SR代表继电器输出型ST代表晶体管输出型。对于新手我强烈建议如果你的学习板或项目是控制电磁阀、接触器线圈电压AC 220V选继电器型如果是控制伺服驱动器脉冲、高频开关如指示灯选晶体管型。继电器型输出可以承受更高的电压和电流但开关速度慢约10ms晶体管型开关速度快可达0.1ms但只能接直流低压通常是24VDC。选错了类型要么烧输出点要么无法驱动负载。面板上RUN/STOP灯指示运行状态ERROR灯闪烁就要警惕了。以太网口是它的“大脑门”用于连接编程电脑STEP 7-MicroWIN SMART和触摸屏如西门子SMART LINE。旁边的RS485接口端口0可以用来做Modbus RTU通讯连接变频器、仪表等这是小型系统里非常实用的功能。看到热搜词“kepserver 连接西门子200smart”这其实就是通过OPC服务器如KEPServerEX利用这个以太网口或串口将PLC数据提供给上位机软件如组态王、WinCC进行监控。注意给PLC供电的24VDC电源一定要稳定、功率足够。我曾遇到一个诡异的故障程序偶尔丢失最后查了三天发现是电源功率余量不足在输出点全部动作时电压被拉低导致CPU工作异常。建议选择额定功率有30%以上余量的开关电源。2.2 软件安装与项目创建避开第一个坑从西门子官网下载最新的STEP 7-MicroWIN SMART软件。安装过程没什么特别的但有一个关键点安装路径不要有中文这是所有工业软件的铁律。安装完成后第一次打开软件你需要新建一个项目。通信设置关键步骤点击软件左上角的“通信”图标或从“通信”菜单进入。在弹出的窗口中“网络接口卡”选择你电脑上连接PLC网线的那个物理网卡比如Realtek PCIe GbE Family Controller。然后点击“查找CPU”。如果硬件连接正确网线直连或通过交换机PLC通电你应该能在列表中看到它的IP地址、MAC地址和型号。这是你与PLC建立联系的“握手”仪式。IP地址设置如果PLC是全新的或者IP地址与你电脑不在同一网段比如PLC是192.168.2.1你电脑是192.168.1.100你是搜不到的。这时需要先设置PLC的IP。一种方法是使用“设置PG/PC接口”但更简单的是在“通信”窗口直接输入你希望给PLC设置的IP地址例如192.168.1.10子网掩码通常为255.255.255.0然后点击“闪烁指示灯”或“分配IP地址”按钮具体按钮名称因版本而异。成功后PLC的以太网口指示灯会快速闪烁此时再搜索就能找到了。创建新项目与CPU组态通信建立后在软件中新建项目第一步就是在项目树中双击“CPU”选择与你手头硬件完全一致的型号。这一步绝对不能错选否则可能导致程序无法下载或下载后运行异常。例如你的是CPU SR20 AC/DC/RLY就绝不能选成ST20。3. 编程基础与第一个实战程序环境搭好我们终于要开始“指挥”这个钢铁大脑了。PLC编程的核心思想是“扫描周期”和“信号流”理解这个就理解了PLC工作的灵魂。3.1 理解扫描周期PLC如何“思考”PLC不是电脑它不会多线程并行处理。它的工作方式像一个不知疲倦的巡逻兵循环执行三个固定步骤输入采样在一个扫描周期开始的瞬间一次性读取所有输入点I点的物理状态通/断即1/0并存入“输入映像寄存器”。在此周期内即使外部输入信号变化这个寄存器里的值也保持不变。程序执行从上到下、从左到右地执行用户编写的梯形图程序。程序里操作的I、Q、M、V等变量都是对各自“映像寄存器”的读写而非直接的物理端口。输出刷新程序执行完毕后将“输出映像寄存器”里的状态一次性更新到物理输出点Q点上。这个机制带来了一个非常重要的概念PLC程序处理的是“映像”而非实时信号。这解释了为什么在同一个周期内一个输入点的状态在程序里是保持一致的。理解这一点对后续设计互锁、边沿检测指令至关重要。3.2 编写一个典型的“启保停”电路让我们用最经典的电机启保停控制作为第一个程序。这个程序虽然简单但包含了自锁、停止优先、指示灯反馈等多个核心概念。假设我们分配以下地址I0.0启动按钮常开触点I0.1停止按钮常闭触点Q0.0控制电机运行的接触器线圈Q0.1运行指示灯在STEP 7-MicroWIN SMART中我们通常在主程序OB1里编写梯形图网络 1电机启保停控制 | I0.0 | I0.1 | Q0.0 | |----| |--------|/|--------( )----| | | | | Q0.0 | | |----| |----程序逐行解析第一行是一个并联或逻辑。当启动按钮I0.0按下导通并且停止按钮I0.1没有被按下常闭触点导通时电流流到线圈Q0.0使其得电。第二行是一个并联在I0.0上的Q0.0的常开触点。一旦Q0.0得电这个触点就闭合形成了一条绕过I0.0的路径。此时即使松开启动按钮I0.0断开电流依然可以通过Q0.0自身的触点保持流通这就是“自锁”或“自保持”。停止按钮I0.1采用常闭触点符号为“/”。在梯形图中这意味着它默认是导通的。只有当停止按钮被物理按下时这个触点才断开从而切断整条回路Q0.0失电自锁也被解除。这种将停止信号串联在回路中并使用常闭触点的设计实现了“停止优先”的安全逻辑。即使启动信号被卡住只要按下停止电机也必须停下。添加运行指示灯在网络1下方新建一个网络网络 2运行指示灯 | Q0.0 | |----| |----( Q0.1 )非常简单电机运行线圈Q0.0得电时指示灯Q0.1就亮。实操心得在真实的按钮接线中停止按钮确实应该使用常闭触点接入PLC输入点。这样做的最大好处是“断线检测”。如果停止按钮线路断了PLC输入点会因为失去连接而变为“0”常闭点断开PLC会认为停止信号有效从而停机这是一种安全设计。如果接成常开线断了PLC反而检测不到停止信号非常危险。3.3 程序下载、调试与监控编写完程序需要编译CtrlF7检查有无语法错误。无误后点击工具栏上的“下载”按钮。下载对话框软件会弹出对话框通常包含“程序块”、“数据块”、“系统块”。对于这个简单程序勾选“程序块”即可。在下载前务必确认PLC处于STOP模式或者勾选“下载后运行”选项。状态监控与强制下载成功后将PLC切换到RUN模式。点击软件上的“程序状态监控”按钮眼镜图标梯形图上就会实时显示各触点和线圈的通断状态通显示蓝色或为“1”。你可以尝试按下仿真中的I0.0或外接真实按钮观察Q0.0和Q0.1的状态变化。状态图表对于更复杂的变量监控和调试可以使用“状态图表”。你可以添加想要监视的变量地址如M0.0, VW100等并在线修改它们的值这对于调试计数器、定时器或数据传送非常方便。4. 核心指令深度解析与应用技巧掌握了基本逻辑控制后我们需要一些更强大的“武器”来处理时间、计数和数据处理。S7-200 SMART的指令库很丰富但掌握几个核心的就能解决80%的问题。4.1 定时器指令让PLC拥有“时间感”定时器是自动化中实现延时、脉冲生成的核心。S7-200 SMART主要有TON接通延时、TOF断开延时、TONR保持型接通延时三种。以最常用的TON接通延时定时器为例假设我们需要按下启动按钮I0.25秒后才开启一个风扇Q0.2。网络 3延时启动风扇 | I0.2 T37 |----| |----------------(TON) | IN TON | PT 100ms | | T37 | |----| |----( Q0.2 )T37这是一个100ms基准的定时器编号范围T32-T96。定时器号决定了其时间基准1ms 10ms 100ms。IN使能端。当I0.2为1时定时器开始计时。PT预设值。设置为50。因为T37是100ms基准所以延时时间 PT * 基准 50 * 100ms 5000ms 5秒。当计时到达5秒T37的常开触点闭合驱动Q0.2输出。注意事项定时器的当前值Txx和位状态Txx触点是两个概念。在程序中T37表示它的位状态是否到时而T37的当前值需要从状态表里监视。另外定时器在IN端变为0时当前值会清零。对于需要累加时间的场合如设备累计运行时间应使用TONR定时器并在合适的时候用复位指令R清零。4.2 计数器指令实现数量与循环控制计数器用于对输入脉冲进行计数。常用的是CTU加计数器。假设一个光电传感器I0.3每检测到一个产品就发出一个脉冲计满10个产品后点亮满箱指示灯Q0.3并复位。网络 4产品计数 | I0.3 C0 |----| |----------------(CTU) | CU CTU | R PV | M0.0 | 10 |----| |----------------| | | C0 | |----| |----( Q0.3 ) //满箱指示 | 网络 5手动复位 | I0.4 C0 |----| |----------------(R)C0计数器编号。CU计数脉冲输入。每个上升沿0变1计数一次。R复位端。当M0.0或I0.4为1时计数器当前值清零位状态复位。PV预设值。设为10。当当前值 PV时C0的位状态变为1触点导通点亮Q0.3。应用技巧计数器配合比较指令可以实现更灵活的控制。例如当计数到5时C0当前值5可以触发一个中间动作如报警提示而不是等到满10才动作。这时可以在另一个网络里写LDW C0, 5然后输出一个位M0.1作为提示信号。4.3 数据传送与比较指令程序智能化的基础PLC不能只处理开关量还要处理数据。比如从模拟量输入读取的温度值存储在AIW16中需要与一个设定值比如存储在VW100中的500代表50.0℃进行比较。网络 6温度监控与报警 | MOV_W | |----| |----(EN) | AIW16 IN OUT-VW200 //将温度采集值传送到VW200便于监视 | | LDD | |----| |----(EN) | VW200 IN1 OUT- M0.2 //温度报警位 | 500 IN2 | | M0.2 | |----| |----( Q0.4 ) //超温报警输出MOV_W字传送指令。将AIW16模拟量输入字的值传送到VW200变量存储区的一个字。LDD双字大于等于比较指令。这里用LDD是因为模拟量值通常是字但比较指令需注意数据类型匹配。更常见的做法是用整数比较LDW。这里为了演示数据流。当VW200中的实际温度值大于等于设定值500时比较指令导通使M0.2置位进而驱动报警输出Q0.4。数据类型是关键这是新手最容易出错的地方。S7-200 SMART中VB字节8位、VW字16位、VD双字32位是同一片存储区域的不同“视图”。如果你用MOV_B指令向VB0写入一个数同时用MOV_W从VW0读取得到的结果可能是错误的因为VW0包含了VB0和VB1两个字节。操作数据前一定要规划好地址分配避免重叠。5. 子程序与中断构建结构化程序框架当程序逻辑变复杂后把所有代码堆在主程序OB1里会变得难以管理和维护。子程序SBR和中断程序INT是构建清晰程序结构的利器。5.1 子程序的封装与调用子程序可以将一段完成特定功能的代码封装起来在主程序中通过一条指令调用。这提高了代码的复用性和可读性。例如我们可以把电机的启保停逻辑封装成一个子程序每次控制一台电机就调用一次。创建子程序在项目树中“程序块”下右键选择“插入”-“子程序”。软件会自动生成一个默认名称如SBR_0的子程序块。可以重命名为更有意义的名字如“Motor_Control”。定义局部变量双击打开子程序在窗口上方的“局部变量表”中定义接口参数。IN类型输入参数调用时由主程序传入。例如Start_Button(BOOL),Stop_Button(BOOL)。OUT类型输出参数子程序执行后返回给主程序。例如Motor_Cmd(BOOL)。IN_OUT类型输入输出参数传入的值可能在子程序中被修改。TEMP类型临时变量仅在子程序执行期间有效。编写子程序逻辑在子程序编辑区使用定义好的局部变量名如#Start_Button来编程而不是绝对地址如I0.0。这样这个子程序就与具体的硬件地址解耦了。在主程序中调用在主程序OB1中从指令树的“调用子程序”中拖出你创建的子程序块如Motor_Control然后在调用框上端的引脚处填入实际参数。例如将Start_Button引脚连接I0.0Stop_Button连接I0.1Motor_Cmd连接Q0.0。smart写子程序注意点来自热词这是非常关键的经验。第一避免在子程序内部使用绝对地址的M或V区做状态记忆。如果这个子程序被多次调用它们会共享和覆盖这些全局地址导致逻辑混乱。状态记忆应使用IN_OUT类型的参数或局部TEMP变量但TEMP变量每次调用都会初始化。第二谨慎使用S和R指令。如果在子程序中置位一个全局位必须在程序的另一个地方可能是主程序或其他子程序确保将其复位否则容易造成“幽灵”信号难以调试。5.2 中断程序的应用场景中断程序用于处理需要立即响应的事件不受主程序扫描周期的影响。S7-200 SMART支持多种中断如定时中断、I/O状态变化中断、高速计数器中断等。一个典型应用利用定时中断实现精准的周期性任务。假设我们需要每100ms精确地采集一次模拟量数据而不受主程序扫描周期长短的影响。创建中断程序插入一个中断程序INT命名为“AI_Sample_INT”。编写中断服务逻辑在INT中编写读取模拟量输入如MOVW AIW16, VW300的指令。关联与启用中断在主程序的初始化部分通常是在第一个扫描周期执行的网络编写以下代码//网络 1初始化定时中断 LD SM0.1 //首次扫描为1 MOVB 100, SMB34 //设置定时中断0的时间间隔为100ms (范围1-255ms) ATCH AI_Sample_INT, 10 //将中断程序AI_Sample_INT关联到定时中断0事件事件号10 ENI //全局开中断SM0.1是仅在首次扫描周期为1的特殊存储器位常用于初始化。SMB34是专门用于设定定时中断0时间间隔的特殊存储器字节。ATCH指令将中断程序与一个中断事件号连接起来。ENI指令允许所有被连接的中断。这样无论主程序在做什么每隔100msCPU都会暂停当前任务转去执行AI_Sample_INT中的代码执行完毕后再返回。这保证了数据采样的时间精度。6. 通信基础让PLC不再是一座孤岛现代自动化设备很少独立工作S7-200 SMART的通信能力是其“SMART”的重要体现。主要掌握两种以太网通信S7协议和串口通信Modbus RTU。6.1 以太网通信S7协议这是最常用的方式用于与编程电脑、西门子HMI触摸屏如SMART LINE、或其他西门子PLC如S7-1200/1500通信。我们之前下载程序用的就是这种方式。GET/PUT指令向导生成用于S7-200 SMART之间或与S7-1200/1500进行数据交换。在软件“工具”菜单中有“GET/PUT向导”可以图形化配置读写操作。例如PLC A用PUT指令将它的VB100-VB109十个字节发送到PLC B的VB200起始地址PLC B用GET指令从PLC A读取这些数据。向导会自动生成对应的子程序在主程序中调用即可。通信口资源冲突S7-200 SMART的以太网口同时用于编程、HMI通信、PUT/GET通信。如果通信数据量很大或频率很高可能会影响编程软件的在线监控流畅度。在规划通信时需要注意负载。6.2 串口通信Modbus RTU通过CPU自带的RS485端口端口0或信号板上的RS485/RS232端口可以实现Modbus RTU协议通信。这是连接第三方设备如变频器、温控器、智能仪表的通用桥梁。使用Modbus RTU从站指令库S7-200 SMART作为主站去读取一个支持Modbus RTU的温控器的温度值。添加指令库需要从西门子官网下载并安装“Modbus RTU Master”指令库然后将其添加到软件指令树中。硬件连接使用屏蔽双绞线正确连接PLC的RS485端口3 8-到温控器的485接口并共地。两端终端电阻根据情况设置。程序编写首先使用MBUS_CTRL指令初始化端口设置波特率、奇偶校验等。这个指令通常放在主程序里用SM0.0常ON调用。然后使用MBUS_MSG指令发起通信请求。例如设置Slave为温控器的站地址如1RW为0读Addr为要读取的保持寄存器地址需根据温控器手册可能需要进行地址转换如40001对应Addr0Count为要读取的字数如1个字DataPtr指向本地存储数据的地址如VB400表示数据存放到VB400开始的地方。MBUS_MSG指令需要用一个脉冲触发如用定时器产生的每秒钟一次的脉冲并且必须保证同一时刻只有一个MBUS_MSG指令处于激活状态通常需要用前一个指令的Done位来触发下一个。排查技巧Modbus通信失败90%的问题出在硬件和参数上。第一检查接线A/B是否接反。第二用串口调试助手如USS协议监听485总线看主站是否发出了正确的报文从站是否有回复。第三核对所有参数站地址、波特率、数据位、停止位、校验位必须完全一致。第四注意Modbus地址的转换PLC库函数使用的地址通常是0-based的即40001对应0而设备手册可能写的是1-based的40001。7. 模拟量处理与PID控制入门除了开关量工业现场大量存在的是连续变化的信号如温度、压力、流量这就是模拟量。S7-200 SMART通过模拟量输入模块如EM AE04来接收这些信号。7.1 模拟量输入信号的整定模拟量模块如0-10V电压输入将物理量转换成一个数字值对于S7-200 SMART通常是0-27648或0-32000等。我们的任务是将这个数字值“翻译”回有工程意义的物理量。线性转换公式是核心实际工程值 (当前模拟量数字值 - 数字下限) / (数字上限 - 数字下限) * (工程上限 - 工程下限) 工程下限假设一个温度变送器量程0-100℃输出4-20mA电流接入模拟量输入通道设置为电流输入对应的数字量范围为6400-32000。 当我们在程序中读到的数字量AIWx为19200时计算实际温度温度 (19200 - 6400) / (32000 - 6400) * (100 - 0) 0 (12800 / 25600) * 100 50℃在PLC中我们可以用实数运算指令来实现这个公式。STEP 7-MicroWIN SMART也提供了“缩放”指令库可以简化这个过程。7.2 PID控制功能块应用PID是用于闭环控制的经典算法比如用一个加热器输出来控制水箱温度反馈稳定在设定值。S7-200 SMART的编程软件内置了PID向导可以极大简化配置。启动PID向导在“工具”菜单中选择“PID向导”。配置基本参数选择要配置的PID回路号最多8个给定值Setpoint的来源可以是常数也可以是变量地址反馈值Process Variable的输入通道如AIW16。设置比例、积分、微分参数即P、I、D值。这是PID调节的核心需要根据被控对象的特性来设定。初期可以先将I和D设为0只使用P调节然后根据系统响应震荡、超调、静差来慢慢调整。这是一个需要经验和试凑的过程。设定输出选择PID输出是模拟量如AQWx还是数字量用于控制固态继电器的通断时间即PWM。生成代码向导会生成一个子程序如PIDx_INIT和一个中断程序PID_EXE。初始化子程序在第一个扫描周期调用一次用于设置参数。中断程序需要关联到一个定时中断如SMB34以保证PID算法以固定的周期执行。在主程序中调用在需要执行PID控制的部分调用向导生成的PIDx_RUN子程序名称可能不同并传入当前的设定值和反馈值。实操心得PID调试切忌心急。先确保模拟量输入信号是稳定、准确的没有大的干扰。然后采用“先P后I再D”的原则。P比例决定了系统对误差的反应速度太大易震荡太小响应慢。I积分用于消除静差稳态误差但太强会引起超调和震荡。D微分可以预测误差变化趋势抑制超调但对噪声敏感容易引起系统不稳定。对于很多温度控制场合只用PI控制就能获得很好的效果。调试时可以一边观察趋势图如果连接了HMI一边小幅修改参数。8. 项目实战与程序框架设计学习了这么多指令和功能最终要把它们有机地组合起来形成一个稳定、可靠、易维护的项目程序。一个好的程序框架至关重要。8.1 一个经典的小型项目程序结构我推荐采用“结构化编程”的思路将程序按功能模块划分主程序OB1程序的调度中心。它应该非常简洁主要按顺序调用各个子程序。就像一个公司的总经理不处理具体业务只负责召集各部门经理开会。网络 1初始化仅首次扫描执行 LD SM0.1 CALL SBR_INIT //调用初始化子程序设置通信、PID、定时中断等 网络 2主循环 LD SM0.0 //常ON CALL SBR_Input_Process //输入处理子程序如滤波、报警判断 CALL SBR_Manual_Mode //手动模式处理 CALL SBR_Auto_Mode //自动模式处理 CALL SBR_Output_Process //输出处理子程序如互锁、安全处理 CALL SBR_Alarm //报警处理子程序 CALL SBR_Comm //通信处理子程序初始化子程序SBR_INIT负责所有一次性的设置工作。包括定时器/计数器复位、通信端口初始化、PID参数装载、中断连接等。输入处理子程序SBR_Input_Process集中处理所有输入信号。这里可以做软件滤波例如用一个定时器来判断一个按钮信号是否持续有效了20ms以消除机械抖动也可以将直接的输入点I点映射到内部的中间变量M点或V区这样主逻辑程序就与物理输入点解耦了后期修改点位地址只需改这里。手动/自动模式子程序这是设备控制的核心。通常用一个模式选择开关如I0.5来切换。手动模式每个执行机构气缸、电机都可以通过单独的按钮点动控制。用于设备调试、维修和初始化。自动模式设备按照预设的工艺流程自动运行。这里通常会用到顺序功能图SFC的思想用一系列的状态位M或V来表示当前工艺步骤通过转移条件如时间到、传感器触发来切换到下一步。输出处理子程序SBR_Output_Process集中处理所有输出。这里可以加入最后的安全互锁和手动/自动切换处理。例如在自动模式下即使程序发出了电机启动命令如果安全光幕被触发I0.60则强制切断输出。再如从自动模式切换到手动模式的瞬间需要将所有自动输出的命令复位防止设备误动作。报警子程序集中管理所有报警条件。当某个报警条件如电机过载、传感器故障、气压不足满足时置位一个对应的报警位并可能触发声光报警器Q点同时在触摸屏上显示具体的报警信息。报警需要有自锁直到故障排除、人工复位后才清除。8.2 调试与故障排查实录即使程序框架再完美现场调试也总会遇到问题。这里分享几个最常见的故障及排查思路问题1下载程序时提示“CPU中的程序与打开的项目不符必须下载”来自热词原因与解决这通常是因为你之前下载过程序但离线项目文件你电脑上的程序与在线CPU中的程序不一致。可能你修改了离线程序但没下载或者别人下载了其他程序到PLC。安全做法是先上载。在通信正常的情况下点击软件上的“上载”按钮将PLC中的程序、数据和系统块全部上载到电脑。保存为一个新项目。然后在这个上载来的项目基础上进行修改和调试。这样可以避免因未知的系统块设置如通信地址、保持寄存器范围差异导致的问题。问题2输入点有信号但程序里监控不到状态不为1排查步骤硬件检查首先在PLC的输入端子处用万用表测量该点与公共端M或L之间的电压确认物理信号确实到达了PLC端子。指示灯确认观察PLC本体上对应输入点的LED指示灯是否亮起。如果灯亮但软件不亮问题在软件或设置如果灯不亮问题在外部线路或PLC内部电路。软件强制在软件状态图表中尝试强制该输入点为1看程序是否能响应。如果能说明程序逻辑没问题问题出在外部信号没进来。检查系统块双击项目树中的“系统块”检查是否有将该输入点配置为了脉冲捕捉功能或其他特殊功能这可能会影响正常的扫描读取。问题3输出点程序已置1但外部设备不动作排查步骤指示灯确认看PLC本体上对应输出点的LED灯是否亮。灯亮说明PLC内部输出电路已动作问题在外部负载或线路。电压测量在输出端子处测量输出电压。对于继电器输出测通断对于晶体管输出测对公共端的电压应为接近24V或0V。检查负载确认负载如继电器线圈、指示灯本身是否完好功率是否在PLC输出点的驱动能力范围内继电器输出一般2A晶体管输出一般0.5A。检查程序互锁在输出处理子程序中是否有其他地方如急停、安全互锁、手动/自动切换逻辑将该输出点强制复位了使用软件的状态图表监控该输出点的最终状态并查找所有对它进行写操作 S R的指令。问题4模拟量值跳动剧烈不稳定排查步骤信号隔离模拟量信号线尤其是热电偶、毫伏信号必须使用屏蔽双绞线并且屏蔽层在PLC端单点接地。电源干扰为变送器供电的电源最好与PLC电源、大功率动力设备如电机驱动器的电源分开。使用隔离的DC/DC电源模块为传感器供电是很好的实践。软件滤波在输入处理子程序中增加软件滤波算法。最简单的是平均值滤波连续采样N次求和后除以N。S7-200 SMART也有专门的库指令可以实现。硬件组态检查模拟量模块的DIP开关或软件组态在系统块中是否正确设置了信号类型电压/电流和量程。程序调试是一个系统工程需要耐心和逻辑。养成“先硬件后软件先外围后核心先静态后动态”的排查习惯大部分问题都能迎刃而解。每次解决一个棘手问题都是对系统理解的一次深化这些经验远比书本知识来得宝贵。
返回列表