Localização Drivers


(Gabriel Montino) #1

Bom dia, agora com a implantação dos xFolders a possibilidade da criação de drivers em outro local da aplicação.

Hoje apenas consigo criar os drivers a sessão de Drivers mas com a possibilidade de usar xObjects e xFolders eu gostaria de poder criar os drivers em locais diferentes da aplicação até por organização.

Mesma ideia de haver o local - Servidor de Alarmes - onde você pode criar todos os alarmes ou você pode criar o alarme direto no Tag ou Ponto que você deseja.

Caso não tenha ficado claro por favor me avisem. Gostaria de tirar o maximo proveito dos xObj e Folder para diminuir o tempo de engenharia.


(Paulo Gustavo Süffert) #2

Gabriel,

Não é possível inserir um Driver de Comunicação na instância de um XFolder, somente Pastas de Dados, Tags auxiliares (Demo, Interno, Contador e Timer), Consultas, Filtros de Alarmes, Alarmes, Instâncias de XFolders e XObjects.

Você pode inserir o Driver de Comunicação dentro da definição de um XObject. Consequentemente, para cada novo XObject que você instanciar na aplicação, estará inserindo um novo Driver também.


(Gabriel Montino) #3

Paulo, é possivel fazer um foreach nos drivers da aplicação?

por exemplo.
foreach (objDriver in “Driver e OPC”) do this…


(Paulo Gustavo Süffert) #4

Sim. Para isso você pode usar a propriedade ‘Application’ de algum objeto do Servidor. Por exemplo:

for each obj in Application.GetObject("Driver1").Application
    if TypeName(obj) = "IODriver" then
        MsgBox obj.Name
    end if
next

(Gabriel Montino) #5

Paulo, só pra ver se eu fiz certo, tenho a lista abaixo os seguintes drivers.

image

Se eu quiser navegar por todos eles eu deveria fazer

image

Porque fazendo desta forma da o seguinte erro

image


(Paulo Gustavo Süffert) #6

Gabriel,

A solução que passei só funciona em tempo de execução. Em tempo de configuração (evento CustomConfig), você pode usar o método ‘ListFiles’ do objeto E3StudioApplication. Por exemplo:

Sub XObject1_CustomConfig()
	for each obj in Application.ListFiles("IODriver")
		MsgBox obj.Name
	next
End Sub

(Gabriel Montino) #7

Funcionou perfeitamente, obrigado Paulo!!!