1、工业控制计算机2023年第36卷第2期Siemens PLC 系统诊断研究与应用刘本发赵传同田晓伟(一汽-大众汽车有限公司青岛分公司,山东 青岛266200)摘要:西门子PLC系统功能和标准函数提供丰富的目录及技术规范,用于处理相关控制任务与功能,这些系统功能是系统诊断的重要方法要素。PLC的操作系统通过中断机制管理事件,系统诊断功能检查相关的系统错误及编程错误,依据诊断事件请求回调系统功能产生相关响应(中断调用)。这些系统诊断响应有系统RUN/STOP、故障响应、请求OB调用等。如同消息订阅,用户通过编程相关消息(消息块函数)可以在WinCC、HMI实现可视化报警,如ALARM消息报警。关键
2、词:OB组织块;事件;系统诊断;中断;消息;S7_ALARM1系统诊断Siemens PLC(Programmable Logic Controller),在发生系统类故障时,诊断往往十分困难。本文通过论述系统诊断信号流工作机制和原理,帮助程序员、工程师、维护人员快速发现并解决问题。以S7-300和Profinet为例,图1是系统诊断信号流的一般性描述:图1系统诊断信号流系统诊断包括系统错误诊断、IO诊断、有诊断能力的模块的诊断,分为同步诊断和异步诊断。它是运行于操作系统上的集成功能,属于是诊断功能层,本文借助于分层的方法来形象化地探讨,图1就是分层描述。这里特别说明诊断基于项目,没有项目没有
3、用户程序的CPU只是自我的管理。因此,系统诊断是对项目及组态数据的诊断。2系统诊断响应如图1的实线信号流,系统诊断检查系统错,当诊断请求事件触发时会有如下相关响应:事件写入Diagnostic Buffer用于在线诊断;中断OB1运行,依据事件类别的请求,调用相关的诊断OB(用户程序接口)进而访问它的用户程序执行诊断响应任务;写入CPU系统数据区相关诊断信息及状态。这些响应最终由操作系统完成PLC状态的管理如命令停机、启动。案例如下:案例一:45号IO设备站,插槽10的输入模块拔出,IO站SF红灯闪烁。事件触发后响应:诊断Buffer信息写入,事件代码ID编号为16#3951,如图2所示;诊断
4、请求调用OB83;CPU由RUN停机STOP。如果先不插入该模块就Restart,这时CPU也可以启动为RUN,但SF会报警。结论:事件是在进入时触发,系统数据区诊断信息此刻并未清除。图2在线事件2.1诊断事件写入BufferPLC事件无论状态轮询型事件(如IO站状态)还是中断发送型事件(如模块插拔)都是按照表1的编码规则生成事件编号。表1事件编码格式事件ID的16编码中,Event Class共分为1、2、3F等级15个类别,其中包含了用户定义类别A、B及系统预留D、E类别事件。类别是指事件信息来源,如异步检查错误、同步程序运行错误、通信错误、模块诊断等等;IDs是进入/离开事件、内外部错误
5、等。图2中,EVENT/16#3951:3类别,异步检查错误;9外部进入事件;51事件编号。3类事件就是诊断类别事件,在诊断请求后响应写入Buffer区记录,通过编程读取或者在线查看事件附加信息还可分析原因、定位故障点(参见本文编码案例)。2.2 OB调用组织块包括循环OB、中断OB、诊断OB见表2。事件驱动型OB是与项目的编程及配置相关的组织块,诊断OB就是诊断事件响应后执行的调用,如果未检测诊断OB的存在,则CPU停机。表2OB类型图3左侧部分为一些诊断OB中断了OB1主循环,是为异步错误;同步错误是程序执行中的计算与访问错误,发生在主循环OB1中,正如图3系统诊断的响应要执行OB调用。案
6、例一就是异步错误,通过中断来发送诊断事件。这里同步异步错误如同进程中线程概念。图3系统诊断OB调用2.3刷新CPU系统状态区CPU系统状态区是一个广义的概述,它包含系统数据区(如组态、通信)、CPU模块状态、模块诊断数据等的数据记录,27Siemens PLC系统诊断研究与应用它不等同于SSL,SSL(系统状态列表)是在请求时创建的列表,属于虚拟列表。CPU系统状态区在笔者看来是元数据列表,包括系统数据、状态数据及诊断,通过进一步诊断还可以获取更为具体诊断信息。SSL是这些列表集合的子集,因此,它是虚拟列表和部分列表,SSL一般地代指系统状态信息。如图1,事件触发,诊断响应更新系统状态区记录。
7、3系统诊断途径及方法应用通过组态工具在线查看Module information,获取一般信息和Diagnostic Buffer是便捷的方法,却不能为用户编程所用,获取诊断信息变量并解析其意义,是本文论述的诊断途径及方法(图1虚线信号流)。3.1 OB堆栈临时变量解析西门子PLC在OB本地堆栈预留了20个Byte的TEMP变量用于描述事件等级、错误代码、地址信息、优先级、时间戳等信息。通过临时(TEMP)变量解析编程获取诊断信息,可实现报警或者消息的编程应用。具体流路径:诊断请求OB响应变量解析消息报警。解析过程大致分三步:事件状态,变量EV_CLASS确定事件是进入事件或者离开事件;错误类
8、型,变量FLT_ID代码确定发生何种类型错误;错误定位,由多个变量如MDL_ADDR,RACK_NUM,RACKS_FLTD解析错误来源。案例一在OB83编程代码示例如下:AM83.0/复位灯JCNEVT1RQ800.2/报警灯复位RQ800.3/报警灯复位/-变量解析/事件-EVT1:A(L#OB83_EV_CLASSLB#16#39/诊断进入事件=I)/判断事件状态JCNEVT2SQ800.2/灯1报警/-变量解析/事件错误代码-EVT2:A(L#OB83_EV_CLASSLB#16#38/诊断离开事件=I)A(L#OB83_FLT_ID/错误代码LB#16#54/54插入模块与模块匹配正
9、确=I)JCNANLYSQ800.3/灯2报警/-变量解析/错误定位-ANLY:CALLLOG_GEO/SFC71LADDR:=#OB83_MDL_ADDR/逻辑地址RET_VAL:=DB_OB83.RETVaL71AREA:=DB_OB83.Area71MASTER:=DB_OB83.master71STATION:=DB_OB83.stationSLOT:=DB_OB83.slotSUBSLOT:=DB_OB83.subslotOFFSET:=DB_OB83.offset/-以上功能:逻辑基址转换物理地址-结束-以上代码中,SFC 71“LOG_GEO”是将逻辑地址转换成物理地址(模块插槽
10、站号架号)的系统功能块。逻辑基址、逻辑地址、物理地址三者不同:逻辑地址包含存储区域标识;逻辑基址是没有区域标识的;物理地址是架号(站号)+插槽号的物理标识。输出地址时,需要增加基址向逻辑地址的转换。3.2 SSL系统状态列表读取通过OB变量解析可以获取故障信息,当多点发生故障时,如总线多处掉站,变量解析只是部分信息。在用户编程中,通过SFC51获取SSL系统状态,这些变量也可直接用于逻辑编程。案例二:IO站离线,编码站号为82、83的IO站离线在线诊断如图4所示:图4IO站离线状态IO站离线,可通过SFC51创建虚拟列表,将数据记录读取到DB中,通过记录分析故障状态。这其实是一般诊断信息读取过
11、程,代码如下:CALLRDSYSSTREQ:=Tact_1000msSZL_ID:=W#16#694INDEX:=W#16#65RET_VAL:=#RetvalBUSY:=#busySZL_HEADER:=DB_SFC511_ID694.HeaderDR:=DB_SFC511_ID694.DIAGLose诊断读取结果为:82 83站离线TRUE,81、84离线FALSE即在线,如图5所示:图5一般诊断结果参数SSL-ID为部分列表编号:长度一个字格式,见表3。例如,SSL-ID=W#16#0694:0CPU模块,是从CPU模块中获取状态信息列表;94机架或站的状态信息部分列表,6扩展代码。IN
12、DEX:索引记录地址,一般是与SSL-ID相关的访问地址或标识,本案例中是Profinet的网络连接识别号101(16#65)见图4。SZL_HEADER,DR是与输出记录相关的头文件信息,分别为输出记录结构长度(多少字节)和输出记录结构重复数目。表3部分列表编号格式通过SSL系统状态列表读取方法,还可以读取模块状态信息如SL-ID=W#16#0696/0691,亦可以直接读取模块的诊断信息如SL-ID=W#16#00B1。3.3 IO诊断记录的获取设备IO站本身具备诊断功能,在用户程序中使用SFB52读取诊断记录并对其进行评估。SFB52是异步读取数据记录的系统功能块,通过REQ=1来启动记
13、录传输,异步方式是指可能横跨多个扫描周期。下述案例三为IO诊断记录的典型应用。案例三:IO站(编号45)的某个插槽模块出现通道断线,通过SFB52(常用于硬件诊断如短路、断线)读取的代码如下:AM24.3/启动执行JCNendL8157/从站诊断地址T#IDAD28工业控制计算机2023年第36卷第2期(上接第26页)理的方式可有效控制生化反应系统中的脱氮除磷过程,提升污水水质至国家一级A类排放标准。随着气候变化和水资源恶化的持续加剧,急需提升污水处理厂的污水排放标准,并加快向能源中和及碳中和时代过渡的步伐。为此,应寻求更加先进的自动化控制方案和优化控制策略来提高处理效率,降低能耗。参考文献1
14、窦中广.污水处理控制系统设计与应用研究D.天津:津工业大学,20212郝晓地,张益宁,李季,等.污水处理能源中和与碳中和案例分析J.中国给水排水,2021,37(20):1-83王一岭,邰阳.我国城市污水处理的工艺及工艺选择分析J.内蒙古大学学报(自然科学版),2014,45(3):324-3284GAO J.Discussion on Shanghai Water Treatment Plan CIOPConferenceSeriesEarthandEnvironmentalScience,20205EZUGBEEO,RATHILALS.MembraneTechnologiesinWaste
15、water Treatment:A ReviewJ.Membranes,2020,10(5):896王舜和,李朦,郭淑琴.多级AO与多模式A2O工艺在污水厂的应用对比J.中国给水排水,2018,34(10):48-51,577相柳堂,韦树铌,朱杰.PROFIBUS-DP网络在A2O生物反应池自控系统中的应用J.自动化仪表,2019,40(2):38郑怀礼,李俊,孙强,等.城镇污水处理自动控制策略研究进展J.土木与环境工程学报(中英文),2020,42(1):126-1349PLIATSIOS D,SARIGIANNIDIS P G,LAGKAS T,et al.ASurveyonSCADASy
16、stems:SecureProtocols,Incidents,Threats,and TacticsJ.IEEE Communications Surveys&Tu-torials,2020,22(3):1942-197610张维,康增彦,王维红,等.基于水解酸化+改造A2O工艺设计及运行效果分析J.水处理技术,2022,48(1):135-140,14611吴坚,徐峥,孙怡劼,等.生产运行监测系统在污水处理行业中的应用J.自动化仪表,2010,31(11):44-46,5012SEAN W Y,CHU Y Y,MALLU L L,et al.Energy Con-sumptionAnalysisinWastewaterTreatmentPlantsUsingSimulation and SCADA system:Case Study in Northern Tai-wanJ.Journal of Cleaner Production,2020,276,(Dec.10 pt.2):124248.1-124248.9收稿日期:2022-05-25LW#16#E00C/设备级扩展诊断T#