falko Inserito: 12 marzo 2009 Segnala Inserito: 12 marzo 2009 Buon giorno a tutti,Ho la necessità di leggere delle variabili da PLC Omron. Per fare questo devo usare CX-Server OPC, volevo sapere quindi se qualcuno lo ha ancora utilizzato e poteva darmi una mano per risolvere alcuni problemi.Faccio un breve riassunto di quanto fatto in precedenza.1. Installato CX-Server OPC 2. Creato un nuovo progetto server (file .cdm)2. Configurato gli oggetti DCOM "OpcEnum" e "Open Data Server" per accettare connessioni dall'esterno3. Installato gli oggetti ActiveX nel PC di sviluppo 4. Importato nell'IDE (C++ Builder) l'ActiveX "OMRON CX OPC Comunications Control"5. Ho quindi creato un nuovo progetto e aggiunto l'oggetto TOPCCommsOra ho provato sia a leggere un tag in modo SINCRONOEe: OPCComms1->Read(L"Gruppo1",L"Tag1", ReadFromDevice);e funziona correttamente.Sia in maniera ASINCRONA Es: OPCComms1->Read(L"Gruppo1",L"Tag1", ReadFromDeviceAsync);e con il metodo "GetData" (per ricevere continuamente la variabile al suo cambiamento) OPCComms1->GetData(L"Gruppo1",L"Task1", Continuous);Ma in questo caso tutti i due metodi falliscono: il primo comunica il seguentemessaggio "Impossibile leggere item dal server Task1" mentre usando il secondometodo non ho alcun messaggio di allarme ma non viene scatenato nessun eventoCia
falko Inserita: 17 marzo 2009 Autore Segnala Inserita: 17 marzo 2009 Mah, ho provato la stessa ActiveX in Excell (usando VB for Application) e non mi ha dato nessun problema.Penso che CB faccia dei casini durante la conversione. Per la cronaca, in CBuilder 6 modificando il tipo del dato di ritorno del metodo OnData da Variant a VARIANT (nei file di header dell'ActiveX) il problema scompare (peccato che debba usare CB 2009 e li il problema rimane)Dannate ActiveX
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora