lfcc Inserito: 3 ottobre 2003 Segnala Share Inserito: 3 ottobre 2003 salve a tutti,monitorando l'uscita seriale del mio portatile con Portmon durante una sessione con CX-Programmer, mi sono imbattuto in una istruzione HostLink che non e' documentata in nessun manuale in mio possesso, dal seguente formato: [at]<numero nodo>MB<dati vari><fcs>*<Cr>in particolare durante il monitoraggio, senza che alcuna operazione sia eseguita sul PLC, viene scritta continuamente la stringa [at]00MB2D0400013C*<Cr> (il PLC collegato ha come numero di nodo zero ed e' un C200HS-CPU21) cui segue una frame di risposta assai lunga e che ha la particolarita' di avere una virgola al suo interno, cosa inusuale per il protocollo HostLink. In altri casi viene inviata una stringa in cui i dati non sono formattati su 4 digits, ma su di un numero dispari. Ho provato a scrivere direttamente questo comando usando Hyperterminal, per essere sicuro che non si trattasse di una lettura errata del Portmon,ma i risultati sono gli stessi. Non ha importanza il tipo di PLC usato ne' la scheda HostLink utilizzata, tutte riconoscono questo comando, e per giunta non pare sia una istruzione FINS via HostLink.Qualcuno sa per caso a cosa serve questa istruzione e quali sono i dati che devono essere forniti? Dando una breve scorsa alla documentazione HostLink il mio sospetto e' che possa trattarsi di una istruzione per leggere un'area di sistema del PLC, analogamente alle istruzioni MS, MM, MF.Ringrazio in anticipo per le risposteLuigi/Hong Kong Link al commento Condividi su altri siti More sharing options...
bcbel Inserita: 3 ottobre 2003 Segnala Share Inserita: 3 ottobre 2003 Hai ragione come primo comando invia proprio quello. Anche il syswin 3.4 fa la medesima operazione. Non ho idea di cosa sia, forse di qualcosa di attinente al programma.Ciao Link al commento Condividi su altri siti More sharing options...
bcbel Inserita: 3 ottobre 2003 Segnala Share Inserita: 3 ottobre 2003 Ripensandoci potrebbe leggere il modello specifico di CPU (??? forse ???) in quanto il comando MM identifica solamente gruppi di modelli.Ciao Link al commento Condividi su altri siti More sharing options...
AndreaM Inserita: 15 ottobre 2003 Segnala Share Inserita: 15 ottobre 2003 Il comando MB nel protocollo Host-Link è l'acronimo di Memory Block. Questo comando permette di scrivere sui registri iterni del PLC. Tale comando probabilmente non è documentato perchè usato tra le altre cose per impostare/rilasciare la password del PLC (sui modelli precedenti al CQM1H). Attenzione a fare prove con questo comando perchè si possono creare danni irreversibili sulla CPU (io ci ho distrutto un C200HS) Link al commento Condividi su altri siti More sharing options...
Teston Inserita: 18 ottobre 2003 Segnala Share Inserita: 18 ottobre 2003 Ciao,ank'io avrei 1 cosa da chiedere i merito!Nel mio caso dovrei solo cambiare un DM dell'area di memoria, attraverso la porta seriale Impostata come Host Link, io ho provato a scrivere il codice [at]00WD00000000...*invio, per mezzo di Hyper Terminal, ma mi restituisce il seguente codice [at]00WD1351, ma il DM 0 per esempio non cambia!La mia domanda era questa: con hyper terminal è possibile spedire un dato e fare il calcolo dell FCS per spedire la stringa oppure no!?Se qualcuno mi può dare delle delucidazione lo ringrazzio infinitamenteStefano Link al commento Condividi su altri siti More sharing options...
pcontini Inserita: 18 ottobre 2003 Segnala Share Inserita: 18 ottobre 2003 Hyperterminal non fa il calcolo dell'FCSSe tu hai l'FCS calcolato in altro modo con Hyperterminal riesci ma mi sembra unpoco scomodo!!!Ciao Link al commento Condividi su altri siti More sharing options...
ifachsoftware Inserita: 18 ottobre 2003 Segnala Share Inserita: 18 ottobre 2003 Nel mio caso dovrei solo cambiare un DM dell'area di memoria, attraverso la porta seriale Impostata come Host Link ....Se guardi l'esempio di Dago nella Sezione UP/Download trovi esempi per il calcolo dell'FCS e per l'invio/ricezione delle DM.Ciao Link al commento Condividi su altri siti More sharing options...
dago_ Inserita: 18 ottobre 2003 Segnala Share Inserita: 18 ottobre 2003 (modificato) A memoria dovrebbe essere cosi',non sono sicuro al 100% perche' al momento non ho niente per verificare,comunque piu' o meno:Public Function CalcoloFcs(TestoFcs As String)Dim VarFcsA As IntegerDim VarFcsB As IntegerDim VarFcsC As IntegerDim VarFcsD As StringDim VarFcsE As StringVarFcsA = Len(TestoFcs)VarFcsC = 0For VarFcsB = 1 To VarFcsA VarFcsD = Mid$(TestoFcs, VarFcsB, 1) VarFcsC = Asc(VarFcsD) Xor VarFcsCNext VarFcsBVarFcsE = Hex$(VarFcsC)If Len(VarFcsE) = 1 Then VarFcsE = "0" + VarFcsECalcoloFcs = VarFcsEEnd Function'es per calcolare l'fcs della stringa [at]00WD00001234 (scrivi 1234 nel DM0) si puo' fare così:'Comando=[at]00WD00001234'FCS=CalcoloFcs(Comando)'Quindi, stringa che va bene = Comando+FCS+"*" + Chr$(13) Modificato: 18 ottobre 2003 da dago_ Link al commento Condividi su altri siti More sharing options...
dago_ Inserita: 19 ottobre 2003 Segnala Share Inserita: 19 ottobre 2003 Se non hai VB, puoi fare il copia/incolla di questo codice in un file di testo e lo salvi con l'estensione VBS (es:CalcoloFCS.VBS)TestoFcs=trim(inputbox("Scrivi la stringa da calcolare","Dago,Calcolo FCS"))Dim VarFcsA Dim VarFcsB Dim VarFcsC Dim VarFcsD Dim VarFcsE VarFcsA = Len(TestoFcs)VarFcsC = 0For VarFcsB = 1 To VarFcsA VarFcsD = Mid(TestoFcs, VarFcsB, 1) VarFcsC = Asc(VarFcsD) Xor VarFcsCNextVarFcsE = Hex(VarFcsC)If Len(VarFcsE) = 1 Then VarFcsE = "0" + VarFcsECalcoloFcs = VarFcsERisultato=msgbox("Risultato:"+TestoFcs+CalcoloFcs+"*"+chr(13),,"Dago,Calcolo FCS") Link al commento Condividi su altri siti More sharing options...
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