Paolo
Risposte nei forum create
-
AutorePost
-
Aprile 1, 2025 alle 1:01 pm in risposta a: Copiare un carattere da una stringa in una variabile #81125
Paolo
PartecipanteBuongiorno, con ultima versione di LogicLab ( 10 , lib 040 ), l’esempio non funziona, mi restituisce errore in fase di compilazione :
error G0271: ChPtr => Invalid operation on different pointed types
Ecco il codice :
VAR DString : STRING[ 10 ]; (* Data string *) Ch : ARRAY[0..9] OF USINT; (* Character *) ChPtr : @USINT; (* Character pointer *) END_VAR DString:='elsistmp'; ChPtr:=ADR(DString); //Character pointer Ch[0]:=@ChPtr; //Leggo carattere in posizione 0 ChPtr:=ChPtr+1; //Character pointer Ch[1]:=@ChPtr; //Leggo carattere in posizione 1
Grazie…
Novembre 3, 2015 alle 10:38 am in risposta a: Gestione caldaia da Web con curva temperatura mandata #39146Paolo
PartecipanteBuongiorno, ho uno SlimLine in cui ho definito un array di 16 temperature nella DB 100 con una assegnazione del tipo:
Temperature REAL %MD100.264 [0..31]
Devo poter leggere questi valori da un pannello Weintek o dal programma per il dispositivo Cloud; attualmente sto usando EasyBuilderPro in simulazione. Riesco a leggere le varie temperature indirizzando vari tag che puntano gli indirizzi (40132, 40136, 40140 etc..) ma vorrei leggere i dati usando un solo tag (es. Temperature) associandolo ad un indice, in modo da non dover per forza dichiarare 32 tag per leggere i 32 valori.
Paolo
PartecipanteGrazie mille, come al solito siete la nostra ancora di salvezza! Ora è tutto chiaro.
Paolo
PartecipanteCiao, in effetti i tempi li devo ancora stabilire con cura; in ogni caso la lettura riguarda dei sensori di temperatura ambiente, quindi la velocità di refresh non è fondamentale; per le coils sono attivazioni anche qui con tempi non necessariamente stretti; avevo pensato a qualche secondo per non caricare inutilmente il bus e la CPU di lavoro inutile, comunque tutto da vedere.
In effetti se la FB ModBusMaster si occupasse di eseguire qualche retry prima di dare il fault sarebbe una bella cosa !!! Anche perchè vivendo di vita propria scaricherebbe (noi poveracci) dal compito di controllare la comunicazione a livello bus….
Dai che lo trovi il tempo !!! 😉
Paolo
PartecipanteCiao, grazie molte per i consigli sempre utilissimi; nel programma ST non ho trovato riferimenti alla gestione dell’errore ModBus; non vengono gestite retry/correzioni di qualche tipo ? Si preferisce saltare al prossimo ciclo di comunicazione ?
Preciso che la lettura nel mio caso riguarda sensori di temperatura, quindi nulla di veloce, la scrittura di coils di comando anche queste nulla di veloce, però rimango nel dubbio se gestire gli errori su ogni singola comunicazione o ignorarli e saltare al prossimo loop con tempi tra i 2-5 sec.
Paolo
PartecipanteGrazie mille, in effetti la mia CPU è un MPS046B, XTarget_10; provvedo subito a fare l’upgrade del firmware (Ora ho la versione SFW184A500); grazie ancora per la disponibilità !
Paolo
PartecipanteGrazie mille, intanto mi sono passato tutto in un blocco FBD (Screenshot) e ora è tutto ok; grazie per l’aggiornamento, sono passato al nuovo ModBusMaster, ho definito tutto sempre nel blocco FBD, ma quando compilo mi dà questi errori , cosa mi sono dimenticato ?
ModbusMaster(566) – error A4107: SysSpyData => Target function not found
ModbusMaster(580) – error A4097: SPY_BINARY => Object not found
ModbusMaster(596) – error A4097: SPY_ASCII => Object not foundPaolo
PartecipanteGrazie per la risposta. Lo scenario è rovesciato : il server dove girano apache (php, autenticazione e form per inserimento dati in db) e mysql è su dominio ARUBA, mentre gli apparati sono in un locale tecnico con connettività adsl, probabile ip statico. Pensavo di far accedere lo SlimLine all’esterno, richiamando il form php es:
http://www.miosito.it/log/logsave.php?id=98&ch=1&val=27,8 ( esempio con GET , ma anche fattible con POST )…
Se non è possibile userò il metodo inverso, da un device in rete LOCALE ( LAN ), interrogherò come suggerito lo SlimLine e poi passerò i dati sul web come sopra descritto…
-
AutorePost