Script que chama outro script

Tenho um script em XControl no evento Custom Config que configura varias tags de comunicação para diferentes drivers. Para facilitar a manutenção deste script, gostaria de dividi-lo em vários scripts. O script do evento Custom Config busca no banco de dados as configurações das tags, para cada driver identificado um script seria chamado. Por exemplo, para o driver Modbus, seria chamado o script que faz as configurações das tags desse driver. O script chamado receberia como parâmetros os nomes das tags, o scan, o endereço do registrador, o ID do equipamento e o código da operação. É possível fazer isso no Elipse E3?

Pesquisei sobre uma forma de incluir uma Função a um xc/xo porém não encontrei.
Uma forma de fazer algo próximo disso seria você criar uma ou mais propriedades do tipo Boolean inicializada em False com um script no OnPropertyChange destes.
No CustomConfig você escreve True neste Boolean que escreve False em si mesmo e então executa o script, e.g.:

Propriedades do XO/XC

Nome Tipo Valor inicial
GetModbusDrivers Boolean False
FormatString Boolean False
Param String Empty
Return String Empty

Scripts

Sub xo_CustomConfig()
	Dim strPrompt
	
	strPrompt = "Escolha uma das opções abaixo:" & vbNewLine & _
				vbNewLine & _
				vbTab & "0 - Lista ModBus." & vbNewLine & _
				vbTab & "1 - Formata string."
				
	Select Case InputBox( strPrompt, , 0)
		Case 0
			GetModbusDrivers = True
		Case 1
			Param = "Hello_World"	' Define parametro.	'
			FormatString = True		' Chama "Função".	'
			MsgBox Return			' Imprime retorno.	'
		Case Else 
			''' TODO '''
	End Select	
End Sub
Sub xo_OnGetModbusDriversChanged()
	If ( Not GetModbusDrivers ) Then Exit Sub
	GetModbusDrivers = False
	
	Dim driver
	Dim drivers
	
	Set drivers = Application.ListFiles( "IODriver" )
	
	For Each driver In drivers
		' Do stuffs... '
	Next
End Sub
Sub xo_OnFormatStringChanged()
	If ( Not FormatString ) Then Exit Sub
	FormatString = False
	
	' Do stuffs... '
	Return = Replace(Param, "_", "")
End Sub

Bom dia Luciana.

Existe uma forma de criar funções no Elipse E3 dentro de um script, como descrito no artigo KB-30665: Trabalhando com funções em scripts no E3.

É muito útil se você for realizar várias vezes a mesma função num script específico.

Você vai perceber que não consegue excluir o “End Sub” no final do script “CustomConfig”, então você criar uma outra sub no final para não ter erro de sintaxe.

Exemplo:

Script Original:

Sub xControl1_CustomConfig()
    ...
End Sub <- Não consegue excluir

Script Acrescentando Função:

Sub xControl1_CustomConfig()
    ...
End Sub
Function fTeste(param1, param2, param3)
End Function
Sub Vazia()
End Sub <-- Não consegue excluir
1 Like