Vai al contenuto
PLC Forum


Leggere Un Array Di Dati Da Plc In Delphi


Henon

Messaggi consigliati

Chiedevo se qualche persona poteva aiutarmi.

Devo Leggere dei Dati da un PLC ControlLogix tramite RsLinx e Delphi 6.0

Attualmente ci riesco bene , ma sono un Elemento alla Volta.

tramite DDEClientConv imposto il Topic corrispondente in RsLinx e con DDEClientItem punto

Item dell' elemento che mi interessa nel PLC.

Però pultroppo posso leggere un Elemeto alla Volta, io avrei la necessità di leggere un Intero array

magari di 100 elementi.

Quando usavo il VB la Sintassi per Item era : "Elemento-L100" esempio "CamX[0].Master -L100"

Però in Delphi il DDEClientItem non mi restituisce la Lista contenente il Valore degli Array .

C'è qualche altra soluzione al mio Problema ?

Link al commento
Condividi su altri siti


Pensavo che qualche persona mi aiutase invece ....

Be dopo un bel pò di prove e tanta paziensa ci sono riuscito da solo.

Ma per il bene anche delle altre Persone, ecco il Metodo (Esempio)

unit RsLinx_R;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, DdeMan, ExtCtrls;

type

TForm1 = class(TForm)

Panel1: TPanel;

Button1: TButton;

Edit1: TEdit;

DdeClientConv1: TDdeClientConv;

Label1: TLabel;

Memo1: TMemo;

Edit2: TEdit;

Label2: TLabel;

Label3: TLabel;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

DDEClient: TDDEClientConv;

Str: pChar;

Topic,Item: String;

begin

DDEClient:=TDDEClientConv.Create(nil);

with DDEClient do

begin

Topic := Edit1.Text;

Item := Edit2.Text;

SetLink('RsLinx',Topic); // Collegamento a RsLinx (Application='RsLinx', Topic='Pippo')

Str:=RequestData(Item); // Richiesta Dato (Item = 'Param[0],L120' )

memo1.lines.Add(Str); // Scrivo il Dato in Memo

StrDispose(Str);

end;

DDEClient.Free;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

memo1.Clear;

end;

end.

Link al commento
Condividi su altri siti

  • 4 months later...

Ciao, nel tuo post hai scritto che con VB e RSLinx non hai avuto problemi.

Io dovrei leggere dei dati attraverso RSLinx in VB, non l'ho mai fatto. Potresti darmi delle dritte?

Ti ringrazio anticipatamente.

Saluti.

Link al commento
Condividi su altri siti

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...