n
1概述n
在配置了StartTechnologicalFaultTask全局响应的情况下,一旦产生工艺对象报警SIMOTION控制器会自动调用TechnologicalFaultTask,执行任务中分配的程序。未决报警的代码及工艺对象触发的报警在此任务中被扫描。通过任务开始信息(TSI),信息可被传到 TechnologicalFaultTask中。可以在TechnologicalFaultTask中添加程序以读取报警代码及信息并将它们传送给高一级控制器以做报警评估,用户也可根据需要编写报警处理的相关程序。n
注意:如果在TechnologicalFaultTask中未添加任何程序,任务被报警调用后会造成CPU进入停机模式。n
在TechnologicalFaultTask 中,可传送下述参数,以用于报警评估:n
· TSI#startTime → 报警被触发的时间n
· TSI#alarmNumber → 报警代码n
· TSI#toInst → 触发报警的工艺对象名称(如:Axis_1)。n
2 TSI介绍
TSI是Task Start Information的缩写,当由于工艺对象报警时系统会触发TechnologicalFaultTask任务,在此任务中编程可以得到相关的任务开始信息,如哪个工艺对象在什么时间报警代码是多少等,可得到TSI的详细说明如下表所示:n
TSI | 数据类型 | 说明 |
TSI#startTime | DT | 任务开始的时间 |
TSI#currentTaskId | StructTaskId | 任务的TaskId |
TSI#cycleTime | TIME | 任务配置的循环时间(= 0, 由于任务是顺序执行的) |
TSI#dwuser_1 | DWORD | 内部预留 |
TSI#dwuser_2 | DWORD | 内部预留 |
TSI#alarmNumber | DINT | 触发报警的代码 (见SIMOTION Alarms Diagnostics 手册中的描述)n 在报警信息中的参数输出在 TSI#alarmP1_DINT 到TSI#alarmP5_LREAL中 (如. TSI#alarmP3_UDINT 表示参数3,数据类型为 UDINT). |
TSI#toInst | ANYOBJECT | 产生错误的TO 背景数据,可用AnyObject_to_Object功能块进行转换。 |
TSI#commandId.low | UDINT | 触发命令的Commandld (低位) |
TSI#commandId.high | UDINT | 触发命令的Commandld (高位) |
TSI#alarmP1_DINTn TSI#alarmP1_UDINTn TSI#alarmP1_LREAL | DINTn UDINTn LREAL | 触发的报警信息的参数1 到 5的数据类型。n 示例:TSI#alarmP3_UDINT c包含参数 3,数据类型为 UDINT。n 可从SIMOTION Alarms Diagnostics 手册中获得报警有效参数的描述。参数的状态代码及数据类型使用的语法如法:n /n/%An 表示:n · /n/ : 参数号n
示例: /3/%X表示参数 3 数据类型为 UDINT 。 |
TSI#alarmP2_DINTn TSI#alarmP2_UDINTn TSI#alarmP2_LREAL | DINTn UDINTn LREAL | |
TSI#alarmP3_DINTn TSI#alarmP3_UDINTn TSI#alarmP3_LREAL | DINTn UDINTn LREAL | |
TSI#alarmP4_DINTn TSI#alarmP4_UDINTn TSI#alarmP4_LREAL | DINTn UDINTn LREAL | |
TSI#alarmP5_DINTn TSI#alarmP5_UDINTn TSI#alarmP5_LREAL | DINTn UDINTn LREAL |
3编程示例
3.1 将工艺报警信息保存至数组中
下述程序将出现的工艺报警信息的报警代码、触发时间及工艺对象名称存入“gasAlarmList”中,将之前存贮的报警信息在数组中向上移动,当前报警信息存入数组gasAlarmList[0]中。n
INTERFACEn
PROGRAM PROGTechFault;n
// ----------- Device Global Constants -------------------------------n
VAR_GLOBAL CONSTANTn
giMAX_NR_OF_ALARM_LIST :INT := 15; //Maximum element in alarm listn
END_VARn
// ----------- Types -------------------------------------------------n
TYPEn
StructAlarm : STRUCTn
iAlarmNumber : DINT; // Alarmnumbern
dtStartTime : DT; //n
sObject : ANYOBJECT;n
END_STRUCT;n
END_TYPEn
// ----------- Device Global Variables -------------------------------n
VAR_GLOBALn
giTechFaultCounter : INT; // counts all technological errorsn
// FIFO with Alarm informationsn
gasAlarmList : ARRAY[0..giMAX_NR_OF_ALARM_LIST] OF StructAlarm;n
END_VARn
END_INTERFACEn
IMPLEMENTATIONn
PROGRAM PROGTechFaultn
VARn
iHelp : INT;n
iToType : INT;n
iAlarmNumber : INT;n
END_VARn
// shift alarm list ----------------------------------------------n
iHelp := giMAX_NR_OF_ALARM_LIST;n
REPEATn
gasAlarmList[iHelp] := gasAlarmList[iHelp-1];n
iHelp := iHelp - 1;n
UNTIL iHelp = 0 END_REPEAT;n
// insert new alarm in list --------------------------------------n
gasAlarmList[0].iAlarmNumber := TSI#AlarmNumber;n
gasAlarmList[0].dtStartTime := TSI#StartTime;n
gasAlarmList[0].sObject := TSI#toInst;n
END_PROGRAMn
END_IMPLEMENTATIONn
3.2 将Axis_1的每次报警30002进行计数
将Axis_1的每次报警30002进行计数,并且自动确认此报警信息。n
INTERFACEn
USEPACKAGE nCAM;n
PROGRAM TO_AlarmProg;n
END_INTERFACEn
IMPLEMENTATIONn
PROGRAM TO_AlarmProgn
VARn
s_i_Count : INT;n
s_i_RetVal: DINT;n
END_VAR;n
IF (TSI#alarmNumber = 30002) AND (TSI#toInst = Axis_1) THENn
s_i_Count:= s_i_Count + 1;n
// Acknowledge specific TO alarm n
s_i_RetVal := _resetAxisError(axis:=Axis_1,n
errorResetMode:=SPECIFIC_ERROR,n
errorNumber:=30002);n
END_IF;n
END_PROGRAMn
END_IMPLEMENTATIONn
n
如果您对该文档有任何建议,请将您的宝贵建议提交至www.4008104288.com.cn
驱动技术下载中心:http://www.ad.siemens.com.cn/download/DocList.aspx?TypeId=0&CatFirst=85 n
驱动技术全球技术资源:http://support.automation.siemens.com/CN/view/zh/10803928/130000
“找答案”驱动技术版区:http://www.ad.siemens.com.cn/service/answer/category.asp?cid=1038 n
注意事项
应用示例与所示电路、设备及任何可能结果没有必然联系,并不完全相关。应用示例不表示客户的具体解决方案。它们仅对典型应用提供支持。用户负责确保所述产品的正确使用。这些应用示例不能免除用户在确保安全、专业使用、安装、操作和维护设备方面的责任。当使用这些应用示例时,应意识到西门子不对在所述责任条款范围之外的任何损坏/索赔承担责任。我们保留随时修改这些应用示例的权利,恕不另行通知。如果这些应用示例与其它西门子出版物(例如,目录)给出的建议不同,则以其它文档的内容为准。n
声明
我们已核对过本手册的内容与所描述的硬件和软件相符。由于差错难以完全避免,我们不能保证完全一致。我们会经常对手册中的数据进行检查,并在后续的版本中进行必要的更正。欢迎您提出宝贵意见。n
版权© 西门子(中国)有限公司2001-2013 版权保留n
复制、传播或者使用该文件或文件内容必须经过权利人书面明确同意。侵权者将承担权利人的全部损失。权利人保留一切权利,包括复制、发行,以及改编、汇编的权利。
西门子(中国)有限公司
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc329180.html