File name: CiA447_GW_PDOtime_V100.esat Full name: CiA 447 GW Test TPDO event timing Version: V01.00 of 04-MAR-2015 Test ID: 0x000A (10d) DUTnodeID: 1 Functions: Smart_ID CiA_447_ID Resources: 2 variables, 0 buffers, 1000us timer resolution Timeout: 60.000s Descript.: Testing TPDO1 and TPDO2 timing to 5 percent accuracy State 0001h: (START) Start of test, start sequence ALWAYS ON RECEIVE {0701h, 1,05h,00h,00h,00h,00h,00h,00h,00h} AND MATCH {0FFFh,Fh,FFh,00h,00h,00h,00h,00h,00h,00h} LOG: (PASS) "Gateway is operational, Alloc Var2" VAR ACTION: ALLOC VAR[2] = 0 GOTO State 0101h State 0101h: ALWAYS ON RECEIVE {0180h, 1,00h,00h,00h,00h,00h,00h,00h,00h} AND MATCH {0FFFh,Fh,00h,00h,00h,00h,00h,00h,00h,00h} LOG: (PASS) "Receive first PDO, Alloc Tim1" VAR ACTION: ALLOC TIMER VAR[1] = 0 GOTO State 0102h Early PDO? State 0102h: Early PDO? ALWAYS ON RECEIVE {0180h, 1,00h,00h,00h,00h,00h,00h,00h,00h} AND MATCH {0FFFh,Fh,00h,00h,00h,00h,00h,00h,00h,00h} LOG: (FAIL) "Early PDO received" VAR ACTION: FREE ALL GOTO State FFFFFFFEh (FAIL) IF (VAR[1] >= 95000) THEN LOG: (PASS) "Tim1 >= 95ms, Clear Tim1" VAR ACTION: VAR[1] = 0 GOTO State 0103h PDO expected IF (VAR[2] >= 101) THEN LOG: (PASS) "Var2 reached 100 cycles, Free Tim1" VAR ACTION: FREE VAR[1] GOTO State 01FEh State 0103h: PDO expected ALWAYS ON RECEIVE {0180h, 1,00h,00h,00h,00h,00h,00h,00h,00h} AND MATCH {0FFFh,Fh,00h,00h,00h,00h,00h,00h,00h,00h} LOG: (PASS) "Correct PDO, Reset Tim1" VAR ACTION: VAR[1] = 0 GOTO State 0104h Start next cycle IF (VAR[1] >= 10000) THEN LOG: (FAIL) "Tim1 >= 10ms" VAR ACTION: FREE ALL GOTO State FFFFFFFEh (FAIL) State 0104h: Start next cycle ALWAYS LOG: (PASS) "Increment Var2" VAR ACTION: VAR[2] = VAR[2] + 1 GOTO State 0102h Early PDO? State 01FEh: ALWAYS ON RECEIVE {0701h, 1,05h,00h,00h,00h,00h,00h,00h,00h} AND MATCH {0FFFh,Fh,FFh,00h,00h,00h,00h,00h,00h,00h} LOG: (PASS) "Gateway is operational, Clear Var2" VAR ACTION: ALLOC VAR[2] = 0 GOTO State 0201h State 0201h: ALWAYS ON RECEIVE {0181h, 7,00h,00h,00h,00h,00h,00h,00h,00h} AND MATCH {0FFFh,Fh,00h,00h,00h,00h,00h,00h,00h,00h} LOG: (PASS) "Receive first PDO, Alloc Tim1" VAR ACTION: ALLOC TIMER VAR[1] = 0 GOTO State 0202h Early PDO? State 0202h: Early PDO? ALWAYS ON RECEIVE {0181h, 7,00h,00h,00h,00h,00h,00h,00h,00h} AND MATCH {0FFFh,Fh,00h,00h,00h,00h,00h,00h,00h,00h} LOG: (FAIL) "Early PDO received" VAR ACTION: FREE ALL GOTO State FFFFFFFEh (FAIL) IF (VAR[1] >= 95000) THEN LOG: (PASS) "Tim1 >= 95ms, Clear Tim1" VAR ACTION: VAR[1] = 0 GOTO State 0203h PDO expected IF (VAR[2] >= 101) THEN LOG: (PASS) "Var2 reached 100 cycles, Free Tim1" VAR ACTION: FREE VAR[1] GOTO State 02FEh State 0203h: PDO expected ALWAYS ON RECEIVE {0181h, 7,00h,00h,00h,00h,00h,00h,00h,00h} AND MATCH {0FFFh,Fh,00h,00h,00h,00h,00h,00h,00h,00h} LOG: (PASS) "Correct PDO, Clear Tim1" VAR ACTION: VAR[1] = 0 GOTO State 0204h Start next cycle IF (VAR[1] >= 10000) THEN LOG: (FAIL) "Tim1 >= 10ms" VAR ACTION: FREE ALL GOTO State FFFFFFFEh (FAIL) State 0204h: Start next cycle ALWAYS LOG: (PASS) "Increment Var2" VAR ACTION: VAR[2] = VAR[2] + 1 GOTO State 0202h Early PDO? State 02FEh: ALWAYS ON RECEIVE {0701h, 1,05h,00h,00h,00h,00h,00h,00h,00h} AND MATCH {0FFFh,Fh,FFh,00h,00h,00h,00h,00h,00h,00h} LOG: (PASS) "Gateway is operational, Free all" VAR ACTION: FREE ALL GOTO State FFFFFFFDh (PASS) State FFFFFFEFh: (ANY) Receives handled in EVERY state ALWAYS ON RECEIVE {0701h, 1,00h,00h,00h,00h,00h,00h,00h,00h} AND MATCH {0FFFh,Fh,FFh,00h,00h,00h,00h,00h,00h,00h} LOG: (FAIL) "GW Bootup" VAR ACTION: FREE ALL GOTO State FFFFFFFEh (FAIL) ALWAYS ON RECEIVE {0081h, 8,00h,00h,00h,00h,00h,00h,00h,00h} AND MATCH {0FFFh,Fh,FFh,00h,00h,00h,00h,00h,00h,00h} LOG: (FAIL) "GW EMCY > 100h" VAR ACTION: FREE ALL GOTO State FFFFFFFEh (FAIL)