read tags with VBA, from my PLC 5/05 and Factorytalk SE HMI
hi, i cannot get my head around this problem.
i keep getting a Variable not defined error when executing my VB code. ( see images and the vb code below)
i toke an old project built on RS View32 and import it into FactoryTalk View Studio SE. the FT parts works, but the VBA code dont. i modified the code to read tags from the old VBA, as described in the ''KB 51770 Lab Manual - VBA Converting RSView32.pdf'' here's my code and i attached images.
thanks a lot in advance for helping me out.
I wlll be posting a second tread for the rest of my code.
the project code starts here :
ThisDisplay:
Option Explicit
Dim gpGroup As TagGroup
Private Sub Button1_Released()
End Sub
Private Sub Button5_Released()
End Sub
Private Sub Button12_Released()
frmPartsLoad.Show
End Sub
Public Sub Display_AnimationStart()
Set gpGroup = Application.CreateTagGroup(Me.AreaName, 500)
' Set gpGroup = Application.CreateTagGroup(Me.AreaName)
gpGroup.Add "BATCH"
gpGroup.Add "VBA\BATCH"
gpGroup.Add "VBA\START_TIME"
gpGroup.Add "VBA\START_TIME_RSVIEW"
gpGroup.Add "VBA\END_TIME"
gpGroup.Add "VBA\END_TIME_RSVIEW"
gpGroup.Add "VBA\DURATION"
gpGroup.Add "VBA\RECIPE_NO" = ""
gpGroup.Add "VBA\RECIPE_NAME" = ""
gpGroup.Add "VBA\ENCHAINEMENT_NO" = ""
gpGroup.Add "VBA\ENCHAINEMENT_NAME" = ""
gpGroup.Add "ACTIVATION\INIT"
gpGroup.Add "RSVIEW_ENTER"
gpGroup.Add "COMMIT_LOAD"
gpGroup.Add "CYCLE_EN_COURS"
gpGroup.Add "VBA\SourceForTR1"
gpGroup.Add "VBA\SourceForTR2"
gpGroup.Add "VBA\SourceForTR3"
gpGroup.Add "VBA\SourceForTR4"
gpGroup.Add "VBA\SourceForTR5"
gpGroup.Add "VBA\SourceForTR6"
gpGroup.Add "VBA\SourceForTR7"
gpGroup.Add "VBA\SourceForTR8"
gpGroup.Add "VALIDATION\TR\TR_1"
gpGroup.Add "VALIDATION\TR\TR_2"
gpGroup.Add "VALIDATION\TR\TR_3"
gpGroup.Add "VALIDATION\TR\TR_4"
gpGroup.Add "VALIDATION\TR\TR_5"
gpGroup.Add "VALIDATION\TR\TR_6"
gpGroup.Add "VALIDATION\TR\TR_7"
gpGroup.Add "VALIDATION\TR\TR_8"
gpGroup.Add "MinRamp_Rate_TOL"
gpGroup.Add "MaxRamp_Rate_TOL"
gpGroup.Add "Min_Soak_Lim"
gpGroup.Add "Max_Soak_Lim"
gpGroup.Add "LoTemp_Mode_SP"
gpGroup.Add "TEMP_THRESHOLD"
gpGroup.Add "LoTemp_Mode_CMD-Bit"
gpGroup.Add "SEGMENTS_REC1"
gpGroup.Add "SEGMENTS_REC2"
gpGroup.Add "RECIPE\REC1\R1RMP1"
gpGroup.Add "RECIPE\REC1\R1RMP2"
gpGroup.Add "RECIPE\REC1\R1RMP3"
gpGroup.Add "RECIPE\REC1\R1RMP4"
gpGroup.Add "RECIPE\REC1\R1RMP5"
gpGroup.Add "RECIPE\REC1\R1RMP6"
gpGroup.Add "RECIPE\REC1\R1RMP7"
gpGroup.Add "RECIPE\REC1\R1RMP8"
gpGroup.Add "RECIPE\REC1\R1SO1"
gpGroup.Add "RECIPE\REC1\R1SO2"
gpGroup.Add "RECIPE\REC1\R1SO3"
gpGroup.Add "RECIPE\REC1\R1SO4"
gpGroup.Add "RECIPE\REC1\R1SO5"
gpGroup.Add "RECIPE\REC1\R1SO6"
gpGroup.Add "RECIPE\REC1\R1SO7"
gpGroup.Add "RECIPE\REC1\R1SO8"
gpGroup.Add "RECIPE\REC1\R1SP1"
gpGroup.Add "RECIPE\REC1\R1SP2"
gpGroup.Add "RECIPE\REC1\R1SP3"
gpGroup.Add "RECIPE\REC1\R1SP4"
gpGroup.Add "RECIPE\REC1\R1SP5"
gpGroup.Add "RECIPE\REC1\R1SP6"
gpGroup.Add "RECIPE\REC1\R1SP7"
gpGroup.Add "RECIPE\REC1\R1SP8"
gpGroup.Add "RECIPE\REC2\R1RMP1"
gpGroup.Add "RECIPE\REC2\R1RMP2"
gpGroup.Add "RECIPE\REC2\R1RMP3"
gpGroup.Add "RECIPE\REC2\R1RMP4"
gpGroup.Add "RECIPE\REC2\R1RMP5"
gpGroup.Add "RECIPE\REC2\R1RMP6"
gpGroup.Add "RECIPE\REC2\R1RMP7"
gpGroup.Add "RECIPE\REC2\R1RMP8"
gpGroup.Add "RECIPE\REC2\R1SO1"
gpGroup.Add "RECIPE\REC2\R1SO2"
gpGroup.Add "RECIPE\REC2\R1SO3"
gpGroup.Add "RECIPE\REC2\R1SO4"
gpGroup.Add "RECIPE\REC2\R1SO5"
gpGroup.Add "RECIPE\REC2\R1SO6"
gpGroup.Add "RECIPE\REC2\R1SO7"
gpGroup.Add "RECIPE\REC2\R1SO8"
gpGroup.Add "RECIPE\REC2\R1SP1"
gpGroup.Add "RECIPE\REC2\R1SP2"
gpGroup.Add "RECIPE\REC2\R1SP3"
gpGroup.Add "RECIPE\REC2\R1SP4"
gpGroup.Add "RECIPE\REC2\R1SP5"
gpGroup.Add "RECIPE\REC2\R1SP6"
gpGroup.Add "RECIPE\REC2\R1SP7"
gpGroup.Add "RECIPE\REC2\R1SP8"
gpGroup.Active = True
End Sub
'**************************************************************************************
'* Name : RecipeLoad *
'* Description : This function show the RecipeLoad form. *
'**************************************************************************************
Function RecipeLoad()
frmRecipeLoad.Show
End Function
'**************************************************************************************
'* Name : StartDataLog *
'* Description : This function starts the datalogging and creates a new datalog file. *
'* This function is called when the CYCLE_EN_COURS tag value is changed *
'* to ON. *
'**************************************************************************************
Function StartDataLog()
'Put the start time into a memory tag
gpGroup.Item("VBA\START_TIME") = Format(Now, "yyyy-mm-dd hh:mm:ss")
gpGroup.Item("VBA\START_TIME_RSVIEW") = Format(Now, "yyyy-mmm-dd hh:mm:ss")
gpGroup.Item("VBA\END_TIME") = ""
gpGroup.Item("VBA\END_TIME_RSVIEW") = ""
gpGroup.Item("VBA\DURATION") = ""
'Put the datalog ON before creating a new datalog file
ExecuteCommand ("DataLogOn ACTIVE THERMOCOUPLES")
ExecuteCommand ("DataLogOn ACTIVE TRANSDUCERS")
ExecuteCommand ("DataLogOn ACTIVE CURE")
ExecuteCommand ("DataLogOn ALARMS ACTIVE CURE")
ExecuteCommand ("DataLogOn PARTS PRESSURE")
ExecuteCommand ("DataLogOn PARTS TEMPERATURE")
ExecuteCommand ("DataLogOn OVEN TEMP")
' OVEN TEMP added (21/12/07) for realtime trend monitoring in RSView32 HMI
'Create a new datalog file for the new cure
ExecuteCommand ("DataLogNewFile ACTIVE THERMOCOUPLES")
ExecuteCommand ("DataLogNewFile ACTIVE TRANSDUCERS")
ExecuteCommand ("DataLogNewFile ACTIVE CURE")
ExecuteCommand ("DataLogNewFile ALARMS ACTIVE CURE")
ExecuteCommand ("DataLogNewFile PARTS PRESSURE")
ExecuteCommand ("DataLogNewFile PARTS TEMPERATURE")
ExecuteCommand ("DataLogNewFile OVEN TEMP")
' OVEN TEMP added (21/12/07) for realtime trend monitoring in RSView32 HMI
End Function
'**************************************************************************************
'* Name : StopDataLog *
'* Description : This function stops the datalogging. *
'* This function is called when the CYCLE_EN_COURS tag value is changed *
'* to OFF. *
'**************************************************************************************
Function StopDataLog()
'Put the end time into a memory tag
gpGroup.Item("VBA\END_TIME") = Format(Now, "yyyy-mm-dd hh:mm:ss")
If Len(gpGroup.Item("VBA\START_TIME_RSVIEW")) > 1 Then
gpGroup.Item("VBA\END_TIME_RSVIEW") = Format(Now, "yyyy-mmm-dd hh:mm:ss")
gpGroup.Item("VBA\DURATION") = Format(frmPartsLoad.TimeDiff(gpGroup.Item("VBA\START_TIME"), gpGroup.Item("VBA\END_TIME")), "hh:mm:ss")
End If
'Stop the datalog, because this function is called when the cure is finished
ExecuteCommand ("DataLogOff ACTIVE THERMOCOUPLES")
ExecuteCommand ("DataLogOff ACTIVE TRANSDUCERS")
ExecuteCommand ("DataLogOff ACTIVE CURE")
ExecuteCommand ("DataLogOff ALARMS ACTIVE CURE")
ExecuteCommand ("DataLogOff PARTS PRESSURE")
ExecuteCommand ("DataLogOff PARTS TEMPERATURE")
ExecuteCommand ("DataLogOff OVEN TEMP")
' OVEN TEMP added (21/12/07) for realtime trend monitoring in RSView32 HMI
End Function
Private Sub Display_BeforeAnimationStop()
' gpGroup.RemoveAll
Set gpGroup = Nothing
End Sub
Private Sub Display_Click()
End Sub
Private Sub Display_Load()
End Sub