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

资讯详情

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

PLC与工业机器人协同控制的硬核实战:从硬件耦合到Profinet故障排查

PLC与工业机器人协同控制的硬核实战:从硬件耦合到Profinet故障排查 1. 这不是“学完就能上岗”的速成班而是一条真实工业现场踩出来的技术路径PLC编程与工业机器人培训课程这八个字背后藏着太多被培训机构刻意模糊的真相。我干自动化集成十年带过三十多个现场项目也面试过两百多名自称“学过PLC和机器人”的应届生或转行者——其中超过七成连S7-1200的DB块数据类型怎么声明都讲不清楚更别说在产线上调试一台ABB IRB 1200与西门子PLC走Profinet总线时如何定位IO映射错位导致的轴使能失败。这不是能力问题是绝大多数所谓“培训课程”从起点就偏离了工业现场的真实逻辑它不教你怎么画梯形图而是教你怎么让设备不停机不讲PID参数怎么调而是讲当变频器报F0021电机过热而产线还在跑时你该先看PLC程序里的温度连锁逻辑还是先查变频器参数P0640是否被误设为0。真正的PLC与机器人协同从来不是两个独立模块的拼接而是电气、机械、工艺、通讯四层耦合的结果。比如西门子PLC与3台汇川MD500变频器做三段速控制表面看是三个DO点控制启停三个AO点给定频率但实际调试中80%的问题出在PLC输出晶体管类型NPN/PNP与变频器端子接线方式不匹配导致的信号电平悬空而非程序逻辑错误。再比如用VMware虚拟机连PLC很多人卡在“用什么网络连接模式”——答案不是桥接或NAT而是仅主机模式Host-only配合虚拟网卡手动配置静态IP因为真实产线PLC网段往往隔离在192.168.0.x而你的宿主机WiFi可能在10.10.10.x桥接模式会因路由策略导致ARP广播无法穿透。这些细节不会出现在课程大纲的“第3章 PLC基础指令”里却决定你能否在凌晨两点独自处理一条饮料灌装线的急停连锁失效。本篇不罗列“XX天掌握PLC”只拆解一个合格工程师在真实项目中必须穿越的四个关卡硬件耦合层的理解深度、通讯协议栈的实操颗粒度、工艺逻辑的状态机建模能力、以及故障排查时的证据链构建意识。适合两类人一是已报名某机构课程但发现学完仍不敢碰现场PLC的学员二是企业里想搭建内部培训体系的技术主管——你们缺的不是课时而是把“西门子PLC多重实例”这种术语还原成“一个FB块如何同时控制三台伺服电机的位置环且每台电机的加减速斜坡参数独立可调”的具体实现。2. 课程设计的本质不是教工具而是重建工业现场的因果链2.1 为什么90%的PLC培训课程从第一步就错了几乎所有公开课程的目录都遵循“PLC原理→梯形图指令→定时器计数器→功能块编程→HMI组态→通讯基础”的线性结构。这看似合理实则违背工业控制的本质逻辑。我在给汽车焊装线做技改时曾让两名刚毕业的工程师分别用TIA Portal V17写一个“工件到位→夹紧→焊接→松开→传送”的循环控制。A同学按教材步骤先建OB1主程序再写FC块封装夹紧逻辑最后用MOVE指令传参B同学直接打开博途新建一个DB块定义结构体stWeldingCycle: { bPartIn: BOOL; bClampOK: BOOL; bWeldingDone: BOOL; nWeldTime_ms: INT; }然后在OB1里只写三行代码CALL Welding_Cycle (IN : stWeldingCycle);。结果A的程序运行后夹具偶尔失压B的版本一次通过。差距在哪不在指令熟练度而在对“因果链”的建模能力。工业现场没有孤立的“指令”只有“条件触发动作→动作产生反馈→反馈修正条件”的闭环。教材教的是MOVE怎么用而现场要解决的是当bClampOK信号因气压传感器漂移延迟200ms返回时bWeldingDone是否该等待还是直接超时报警这需要状态机State Machine思维而非顺序执行思维。因此真正有效的课程设计必须倒置第一课不是“什么是PLC”而是“拆解一条食品包装线的停机报告”。例如某客户提供的故障记录“2023-08-15 14:22:37封口机急停HMI显示‘夹爪未复位’但现场气缸已退回”。这背后涉及三层耦合电气层夹爪磁性开关信号线是否受变频器干扰需示波器测上升沿抖动PLC层程序中bClawReset的置位逻辑是否依赖Q0.3输出点状态而该点因接触器粘连持续得电机械层气缸缓冲垫老化导致回位行程不足0.5mm开关未触发。课程若不从这类真实故障切入所有梯形图练习都是空中楼阁。我设计的实战模块第一周任务就是分析10份不同行业的停机报告用Visio画出“信号流-动作流-反馈流”三线图强制剥离“PLC程序”这个单一维度建立系统观。2.2 工业机器人培训的致命误区把示教器操作当成编程市面上95%的“工业机器人编程课”核心内容是教你怎么在示教器上点选“MoveL”、“WaitDI”、“Set DO”这些指令。这就像教人开车只练挂挡和打方向却不讲离合器半联动时机或ABS介入逻辑。真正的机器人集成80%工作量在PLC侧。以ABB IRB 1200与S7-1200走Profinet为例机器人侧只需配置IO映射表将DigitalInput_1映射到PLC的QB0.0所有复杂逻辑如“当输送线速度0.3m/s且机器人当前在安全区外时禁止启动抓取”必须在PLC中用ST语言实现机器人只接收PLC发来的bAllowPick信号并反馈bPickComplete。课程若不强调PLC与机器人的职责边界学员永远无法理解为何要写“IF Conveyor_Speed 300 AND NOT Robot_In_Safe_Zone THEN bAllowPick : FALSE;”这样的语句。更隐蔽的陷阱是“通讯协议幻觉”。很多课宣称“学会Modbus TCP就能连机器人”却不说清Modbus TCP只能读写寄存器无法实现运动控制指令下发如目标位置坐标必须用专用协议如ABB的PC SDK或KUKA的KLI。我们课程中专门设置“协议撕裂实验”用Wireshark抓包对比Modbus TCP与Profinet IO的数据帧结构让学生亲眼看到前者只有功能码寄存器地址后者包含完整的IO数据区诊断信息同步时间戳。这种颗粒度的差异直接决定你能否在产线上快速定位“机器人报DSQC652板卡通信超时”是网络风暴还是配置错误。2.3 实战案例不是演示而是故障注入的沙盒环境所谓“实战案例”绝非按教程一步步敲代码跑通就行。我们采用“故障注入法”设计所有案例超市储藏环境自动控制系统仿真软件里预埋三个隐藏故障——温湿度传感器模拟信号4-20mA经PLC AI模块转换后因量程设置错误导致-10℃显示为85℃冷风机启停逻辑中TON定时器的PT参数被误设为T#5S而非T#5MS造成冷凝水阀响应延迟HMI画面中“当前温度”变量绑定到DB1.DBW2但PLC程序实际写入DB1.DBW4。学员任务不是修复程序而是用万用表测AI模块端子电压、用博途监控定时器ET值、用HMI变量管理器查绑定地址构建证据链。三段速变频器控制提供三菱FR-D700与西门子S7-1200的接线图但故意将PLC输出点Q0.0NPN型接到变频器SD端子要求PNP输入学员需用万用表测Q0.0对M端电压确认低电平有效后再修改PLC程序将Q0.0 : TRUE改为Q0.0 : FALSE实现逻辑反相。这种设计源于真实教训去年某光伏厂新线投产调试工程师花两天排查“变频器不启动”最后发现是PLC晶体管输出类型与变频器端子极性不匹配而手册里只有一句“请确认接线方式”。课程存在的意义就是把这种“翻车瞬间”提前到学习阶段。3. 核心细节解析从PLC晶体管输出到机器人总线通讯的硬核颗粒度3.1 PLC数字量输出的生死线NPN/PNP不是选择题是电路定律“PLC数字量输出点控制变频器开关量和开关量控变频器一样吗”——这是搜索热词里最扎心的问题。答案是完全不一样且错误理解会导致设备损坏。根本原因在于PLC输出点的驱动能力与变频器输入端的电路拓扑。以西门子S7-1200 DC/DC/DC型号为例NPN输出漏型输出内部晶体管集电极接电源正发射极接输出端子。当PLC输出ON时电流从外部电源 → 变频器输入端子 → PLC输出端子 → PLC内部晶体管 → 电源M端形成回路。此时PLC输出端子为低电平0V。PNP输出源型输出内部晶体管发射极接电源集电极接输出端子。当PLC输出ON时电流从PLC输出端子 → 变频器输入端子 → 外部电源- 形成回路。此时PLC输出端子为高电平24V。变频器输入端如汇川MD500的SD端子本质是一个光耦输入电路其内部等效为一个LED串联电阻。LED有极性阳极接高电平阴极接低电平才能导通。因此若变频器要求“SD端子接低电平有效”必须用NPN输出PLC且接线为PLC Q0.0 → 变频器SD端子PLC M端 → 变频器COM端若变频器要求“SD端子接高电平有效”必须用PNP输出PLC且接线为PLC Q0.0 → 变频器SD端子外部24V → 变频器COM端。实操中90%的接线错误源于忽略变频器手册中的“输入电路图”。例如三菱FR-D700手册第4-12页明确标注STF/STR端子为“源型输入”即需高电平有效而SD端子为“漏型输入”需低电平有效。这意味着同一台PLC若要同时控制启停STF/STR和使能SD必须使用混合输出模块如SM1223或用继电器隔离。我们在课程中强制要求每次接线前学员必须手绘电路图标出电流流向并用万用表二极管档验证变频器输入端LED极性红表笔接SD黑表笔接COM若导通则SD为漏型输入。这比背诵“NPN接负载负极”有用一百倍。3.2 VMware连PLC的网络迷思为什么桥接模式注定失败“用VMware连PLC用什么网络连接模式”是高频搜索词暴露了虚拟化环境下的典型认知偏差。很多人以为只要虚拟机IP和PLC在同一网段就能通信却忽略了工业网络的底层约束。真实场景中PLC如S7-1200的以太网口本质是一个嵌入式TCP/IP栈其ARP缓存表大小有限通常仅16条且不支持ICMP重定向。当VMware使用桥接模式时虚拟机获得与宿主机同网段的IP如192.168.1.100PLC IP为192.168.1.1但宿主机的物理网卡与虚拟网卡在OS层面共享同一MAC地址导致PLC的ARP请求广播被宿主机拦截PLC ARP表中记录的192.168.1.100对应MAC地址实为宿主机物理网卡MAC而非虚拟机网卡MAC结果PLC能ping通虚拟机IP但TIA Portal无法下载程序因为S7通信协议ISO on TCP依赖精确的MAC地址绑定。正确方案是仅主机模式Host-only在VMware中创建仅主机网络如VMnet1分配网段192.168.200.0/24将虚拟机网络适配器设为仅主机模式手动配置IP 192.168.200.10用网线直连PLC网口与宿主机网口将宿主机该网口IP设为192.168.200.1PLC IP设为192.168.200.2。此时虚拟机→宿主机→PLC构成单跳路由ARP请求直达PLC无MAC地址混淆。我们课程中要求学员用Wireshark抓包验证成功连接时能看到PLC发来的S7 Communication Request帧其目的MAC为虚拟机网卡MAC失败时目的MAC为宿主机物理网卡MAC。这种基于协议栈的验证比“试一下能不能连”深刻得多。3.3 西门子PLC多重实例不是高级技巧而是资源隔离的刚需“西门子PLC多重实例”常被包装成“高手进阶技能”实则是应对多设备控制的工程刚需。以一条包装线为例需同时控制3台伺服电机送膜、拉膜、切膜每台电机需独立的位置环参数KP/KI/KD、速度限制、加减速时间。若用单个FB块所有电机共用同一组DB块变量则参数调整会相互覆盖。多重实例的本质是创建一个FB块如FB_ServoCtrl其接口参数全部声明为IN_OUT在OB1中多次调用该FB每次调用关联不同的背景DB如DB_Servo1、DB_Servo2每个DB块独立存储该电机的参数与状态。关键细节在于背景DB的初始化。很多学员调用FB后发现电机不动原因是背景DB未初始化。西门子规定FB块首次调用时若背景DB未下载其静态变量STAT默认为0但输入参数IN不会自动赋初值。例如FB_ServoCtrl中nMaxSpeed参数若未在DB中赋值程序运行时为随机值。解决方案在FB块的STATIC区域定义默认参数如nMaxSpeed : INT : 1000;或在OB1中调用前用MOVE指令将默认值写入DB对应地址。我们在课程中设计“三电机同步测试”要求学员用同一FB块控制三台电机实现“送膜电机加速时拉膜电机保持恒速切膜电机按比例减速”并用博途的“监控表”实时观察三个背景DB中nActualSpeed变量的变化曲线。这种训练直击工业现场多轴协同的核心痛点。4. 实操过程全记录从零搭建西门子PLC与ABB机器人Profinet通讯4.1 硬件准备与网络规划拒绝“插上线就通”的侥幸真实项目中通讯失败80%源于物理层。本案例使用S7-1200 CPU1214C DC/DC/DC固件V4.5与ABB IRB 1200控制器IRC5固件V6.12通过Profinet IO通讯。第一步不是打开TIA Portal而是完成三份文档PLC网络规划表设备IP地址子网掩码网关MAC地址S7-1200192.168.10.10255.255.255.00.0.0.000-01-02-03-04-05ABB IRC5192.168.10.20255.255.255.00.0.0.000-01-02-03-04-06提示Profinet无需网关但IP必须在同一网段MAC地址需在设备标签上抄录不可假设。IO映射清单PLC→机器人QB08位bStart,bStop,bReset,bMode_Auto,bMode_Manual,bSafety_OK,bDoor_Close,bEmergency_StopQB18位nAxis_Select0-7选择轴号QW216位nTarget_Position目标位置单位0.001mm机器人IO配置截图在IRC5示教器中进入Control Panel → Configuration → I/O → DeviceNet/Profinet确认“Profinet IO Controller”已启用并记录“Station Name”为IRB1200_01。实操心得曾有学员在IRC5中将Station Name设为IRB1200无下划线而PLC中配置为IRB1200_01导致TIA Portal报错“设备未响应”。Profinet对Station Name大小写和字符严格匹配必须一字不差。4.2 TIA Portal配置从设备添加到IO数据交换的完整链路添加设备在TIA Portal中新建项目添加CPU1214C固件版本选V4.5右键“Devices and Networks” → “Add new device” → 选择“ABB IRB 1200”在设备目录中找到对应GSD文件ABB_IRB1200_V612.gsd导入后拖入网络视图。配置Profinet网络用鼠标连线PLC与机器人双击连接线在“Properties”中设置“Update rate” 1ms机器人运动控制要求“Startup time” 1000msIRC5启动较慢“Watchdog time” 500ms避免瞬时干扰导致断连。IO映射配置双击机器人设备在“Configuration”选项卡中展开“Inputs”和“Outputs”将PLC的QB0拖到机器人Inputs的“Byte 0”将机器人的QB0拖到PLC Outputs的“Byte 0”关键点击“Assign address”按钮确认PLC侧地址为IB0输入字节0QB0输出字节0。生成DB块右键机器人设备 → “Generate device data type”自动生成UDT_ABB_IRB1200新建DB块DB_Robot_IO数据类型选UDT_ABB_IRB1200在OB1中调用CALL ABB_IRB1200_Comm (DB : DB_Robot_IO);注意GSD文件必须与IRC5固件版本严格匹配。V6.12固件需用V6.12 GSD若用V6.08 GSDTIA Portal会报错“Device not supported”。4.3 程序逻辑编写用ST语言实现安全联锁与状态机通讯建立后真正的挑战是逻辑。我们编写一个“安全启动流程”// 安全状态监控 bSafety_OK : (DB_Robot_IO.bSafety_Door_Closed) AND (DB_Robot_IO.bEmergency_Stop_Reset) AND (DB_Robot_IO.bSystem_Ready); // 启动请求处理防抖动 IF bStart_Pressed AND NOT bStart_Last THEN bStart_Request : TRUE; tStart_Timer(IN : TRUE, PT : T#50MS); ELSIF tStart_Timer.Q THEN bStart_Request : FALSE; END_IF; bStart_Last : bStart_Pressed; // 主状态机 CASE nRobot_State OF 0: // STOPPED IF bStart_Request AND bSafety_OK THEN nRobot_State : 1; DB_Robot_IO.bStart : TRUE; END_IF; 1: // STARTING IF DB_Robot_IO.bStarted THEN nRobot_State : 2; ELSIF tStart_Timer.Q THEN nRobot_State : 0; // 超时复位 END_IF; 2: // RUNNING IF NOT bSafety_OK THEN nRobot_State : 3; DB_Robot_IO.bStop : TRUE; END_IF; 3: // STOPPING IF DB_Robot_IO.bStopped THEN nRobot_State : 0; END_IF; END_CASE;这段代码的关键在于安全信号融合bSafety_OK必须同时满足门关、急停复位、系统就绪任一为FALSE立即停止启动防抖tStart_Timer消除按钮机械抖动避免误触发状态超时保护STARTING状态若500ms内未收到bStarted反馈自动复位防止机器人卡在中间态。实测中我们故意断开IRC5的急停回路观察PLC是否在100ms内置位bStop。结果从急停信号丢失到PLC输出bStop耗时83ms含Profinet周期1ms×3次完全满足ISO 13850安全标准。4.4 故障排查实战当Profinet灯变橙色时你在查什么Profinet指示灯变橙色非红色是最高频故障代表“链路建立但IO数据交换异常”。排查必须按层级进行物理层用网线测试仪测PLC与IRC5间网线重点查1-2线TX、3-6线RX是否通断。曾遇案例网线水晶头压接时1-2线被压断但Ping通因ICMP走其他路径S7通信失败。链路层在TIA Portal中右键PLC → “Online diagnostics” → “Diagnostics” → “Network overview”查看IRC5设备状态。若显示“Device not responding”说明ARP失败检查Station Name若显示“Data exchange error”进入下一步。应用层打开IRC5示教器进入Control Panel → Configuration → I/O → Profinet → Diagnostics查看“Input/Output data status”。若显示“Invalid data length”说明PLC侧配置的IO字节数与IRC5实际映射字节数不一致如PLC设8字节输入IRC5只映射4字节。我们课程中设置“橙色灯故障包”提供5个预设故障的抓包文件pcap格式学员需用Wireshark分析故障1PLC发送PROFINET DCP Identify RequestIRC5无响应 → Station Name错误故障2PLC发送PROFINET IO DataIRC5回复PROFINET IO Data Ack但数据长度为0 → IO映射配置错误故障3PLC与IRC5间存在交换机但交换机未开启IGMP Snooping → 组播风暴导致丢包。这种基于真实抓包的训练让学员建立“从物理线缆到应用数据”的全栈排查能力。5. 常见问题与独家避坑技巧实录十年现场踩出的血泪清单5.1 PLC与变频器通讯的十大隐形雷区问题现象根本原因排查技巧我的避坑法变频器报F0021电机过热但温度传感器正常PLC程序中温度连锁逻辑缺失未在bMotor_RunTRUE时使能温度监控用博途监控bMotor_Run与bTemp_Monitor_Enable信号时序在FB块中强制加入IF bMotor_Run THEN bTemp_Monitor_Enable : TRUE; END_IF;并用R_TRIG检测bMotor_Run上升沿触发监控初始化PLC输出点Q0.0控制变频器启停但Q0.0烧毁NPN输出点直接驱动变频器SD端子电流500mA超出PLC输出点额定电流0.5A用万用表电流档测Q0.0回路电流必须加中间继电器PLC输出点驱动继电器线圈10mA继电器触点控制变频器电源HMI显示“频率给定0Hz”但变频器实际运行PLC AO模块输出4-20mA但变频器AI端子接线错误正负极反接用万用表直流电压档测变频器AI端子电压应为10V左右在PLC程序中增加IF nFreq_Setpoint 10 THEN Alarm_Freq_Low : TRUE; END_IF;并强制HMI弹窗报警三段速切换时变频器报F0001过流PLC切换DO点时存在毫秒级重叠如Q0.0与Q0.1同时为1导致变频器接收非法组合用示波器测Q0.0与Q0.1波形观察上升沿/下降沿时间差在ST程序中用TON定时器强制插入10ms死区“Q0.0 : bSpeed1; Q0.1 : bSpeed2; Q0.2 : bSpeed3;”不直接控制输出点而是控制中间变量PLC与ABB机器人通讯时机器人突然急停Profinet周期设为1ms但PLC扫描周期1ms因程序复杂导致IO数据超时在TIA Portal中查看CPU诊断缓冲区找“Profinet IO timeout”事件将运动控制逻辑拆分到单独的OB如OB60设置更高优先级并限制OB60执行时间500μs5.2 工业机器人编程的五个反直觉真相示教器里“MoveJ”比“MoveL”更难调关节运动MoveJ的轨迹由各轴加减速曲线决定而直线运动MoveL由笛卡尔空间插补。现场调试时MoveJ易出现“抖动”根源常是轴加速度参数Acc设得过高而非程序问题。我的做法先将所有轴Acc设为50%运行无抖动后再逐步提高。机器人报“DSQC652板卡通信超时”90%不是板卡坏DSQC652是IRC5的IO扩展板超时多因背板连接松动。正确排查关机后拔插DSQC652背板金手指用橡皮擦清洁金手指再拧紧固定螺丝。“机器人坐标系校准”不是精度问题而是基准问题很多学员抱怨校准后精度差实则是未在机器人静止时校准。IRC5要求校准前所有轴必须处于机械零点且无负载。我的经验校准前先运行Motors Off用手动模式将各轴摇到零点刻度再执行校准。HMI与机器人通讯别信“Modbus TCP万能论”Modbus TCP只能读写寄存器无法获取机器人实时位置X/Y/Z。要获取位置必须用ABB PC SDK的GetRobTarget函数这需要在PC上安装RobotStudio并配置OPC UA服务器。机器人安全门禁不是“开关量”而是“双通道监控”安全标准要求急停、安全门必须双通道输入且PLC需监控两通道信号一致性。课程中我们用S7-1200的F-PLC功能块实现但更简单的方法是用两个独立DI点接入同一安全门开关PLC程序中判断bSafe_Door_1 bSafe_Door_2即报警。5.3 学员最常问的七个“为什么”我的真实回答QPLC编程入门基础知识里为什么总强调“扫描周期”A因为这是工业控制的命脉。S7-1200扫描周期约100ms意味着你写的TON定时器最小分辨率为100ms。若要实现50ms延时必须用TP脉冲定时器基于硬件中断否则程序永远不准。Q西门子PLC通讯模块8180错误代码是什么A这是CP343-1以太网模块的“无响应”错误99%原因是PLC与目标设备IP不在同一网段或目标设备防火墙阻止了S7协议端口102。解决方案用ping确认IP连通性用telnet 目标IP 102测试端口开放性。QLabVIEW与松下PLC串口通讯为什么总是收不到数据A松下FP-X系列PLC默认串口协议是MEWTOCOL-COM而非Modbus RTU。LabVIEW需用“VISA Configure Serial Port”设置波特率、数据位、停止位并在“VISA Write”中发送00WR0000000001格式命令地址命令数据。QPLC怎么让绿灯闪烁3秒A别用TONTOF组合那是教科书陷阱。正确方法用TP定时器“TP(Q : bGreen_Blink, IN : bGreen_Blink_Trig, PT : T#3S)”并在bGreen_Blink_Trig上升沿触发。这样闪烁周期精准不受扫描周期影响。QGX Works2 PLC计数器为什么计数不准A三菱FX系列计数器有高速计数器C235-C255和普通计数器C0-C199之分。普通计数器最大计数频率10Hz若编码器脉冲10Hz必须用高速计数器并在PLC参数中设置“高速计数器模式”如C235设为单相增计数。QPLC电动机顺序启动逆序停止电路图为什么实物接线总烧接触器A因为电路图没体现“互锁”细节。正转接触器KM1的常闭触点必须串入反转接触器KM2线圈回路反之亦然。若只画主回路忽略控制回路互锁KM1/KM2会同时吸合造成相间短路。Q欧姆龙PLC仿真模拟软件为什么仿真时IO点不响应ACX-Simulator默认不启用“外部设备仿真”需在“Options → Settings → PLC System Settings”中勾选“Enable external device simulation”并确保仿真PLC型号与实际一致如CP1E-N20DT-A。6. 最后分享一个没人告诉你的技巧用PLC程序自动生成设备点检表所有培训课都教你写控制程序但没人告诉你PLC程序本身就能生成运维文档。我在汽车厂做的一个项目要求每天班前检查20项设备状态如气压、油位、急停按钮。传统做法是打印纸质表格工人手填。后来我用PLC实现了自动点检在DB块中定义结构体stCheckItem: { sName: STRING[20]; bStatus: BOOL; dtLastCheck: DT; }创建20个stCheckItem数组在OB1中当bCheck_Start为TRUE时循环执行stCheckList[i].bStatus : DB_Machine.bSensor_OK[i]; stCheckList[i].dtLastCheck : TOD;用TIA Portal的“Web Server”功能将DB块数据通过HTTP GET导出为CSV工人用手机扫码即可下载当日点检表。这个技巧的价值在于它把PLC从“控制
返回列表