西门子 S7-200 的仿真软件(主要指S7-200 PLC Simulator,如第三方软件 “PLC-SIM for S7-200” 或早期西门子官方工具)由于仿真环境的局限性,部分与硬件交互、实时性要求高或依赖外部设备的命令 / 功能无法完全模拟,可能出现 “无法执行” 或 “执行结果与实际 PLC 不一致” 的情况。以下是常见的不可执行或受限的命令及原因:
高速计数器(HSC)相关指令
包括HDEF
(高速计数器定义)、HSC
(高速计数器控制)等。
原因:高速计数器依赖 PLC 硬件的高速脉冲捕捉电路,仿真软件无法模拟实际脉冲信号的高频输入(如编码器脉冲),因此无法触发 HSC 的计数、复位、比较等动作。
表现:仿真时 HSC 的当前值(如 HC0)不会随程序逻辑更新,相关中断也无法触发。
高速脉冲输出(PTO/PWM)指令
包括PLS
(脉冲输出控制)、PTO
(脉冲串输出)、PWM
(脉冲宽度调制)等。
原因:PTO/PWM 依赖 PLC 的硬件脉冲发生器,仿真软件无法模拟实际脉冲输出(如控制伺服 / 步进电机的脉冲信号),无法验证脉冲频率、数量是否正确。
表现:调用PLS
后,输出点(如 Q0.0、Q0.1)的状态在仿真中可能无变化,或仅显示 “理论输出” 但无实际脉冲逻辑。
模拟量 I/O 指令
包括AIW
(模拟量输入读取)、AQW
(模拟量输出写入)。
原因:仿真软件无法模拟实际模拟量传感器(如温度、压力传感器)的 4-20mA/0-10V 信号输入,也无法验证模拟量输出的电流 / 电压值。
表现:AIW
读取的值通常固定为初始值(如 0 或 32767),无法通过仿真模拟信号变化;AQW
写入的值无法反映实际输出效果(如无法验证是否线性对应物理量)。
通信相关指令(部分受限)
包括NETR
(网络读)、NETW
(网络写,PPI 通信)、MODBUS
库指令(如 MBUS_MSG)等。
原因:仿真软件难以模拟真实的物理通信链路(如 PPI 总线、RS485 接口),无法与外部设备(如其他 PLC、HMI、变频器)建立实际通信。
表现:NETR/NETW
可能显示 “通信超时”;Modbus 指令可能返回错误码(如 16#03,通信失败),无法验证数据收发逻辑。
外部中断指令
包括ATCH
(中断连接)、DTCH
(中断分离)、ENI
(允许中断)等,尤其是外部输入中断(如 I0.0 上升沿中断)。
原因:仿真软件无法模拟实际输入点的硬件中断触发机制(如高频信号的边沿检测),中断服务程序(ISR)可能无法被正确调用。
表现:即使强制输入点状态变化,中断程序也可能不执行,或执行时机与实际 PLC 不一致。
定时中断指令
S7-200 的特殊存储器(SM)中,部分与硬件状态、实时时钟相关的位或字无法在仿真中正确更新:
实时时钟(RTC)相关 SM:如 SMB80-SMB87(时钟字节),仿真中可能固定为初始值(如 0),无法通过SET_RTC
/READ_RTC
指令更新,无法模拟时间戳记录、定时任务等逻辑。
硬件状态 SM:如 SM0.5(秒脉冲,周期 1 秒)、SM0.6(分钟脉冲),仿真中可能不按实际周期刷新;SMB1(通信错误状态)、SMB2(接收字符缓冲区)等通信相关 SM 可能始终为 0。
扩展模块相关 SM:如模拟量扩展模块的状态字(如 SMB28/SMB29),仿真中无法识别扩展模块,相关状态无法模拟。
强制输出(Q 点)的局限性
程序执行时间监控
区分 “可仿真” 与 “需实际测试” 的逻辑:
使用替代方法模拟信号:
结合官方工具与文档:
总之,S7-200 仿真软件的核心价值是验证逻辑流程的正确性(如触点通断、数据运算、定时器 / 计数器动作),但涉及硬件交互、实时信号、外部通信的功能必须在实际设备上测试,才能确保程序可靠运行。