Help configuring Pvi-OPC DA (v1.53 / 20 years old)

Hi

I’m having a machine where I would like to extract production data from somehow. The machine is over 20 years old and at the HMI PC I can find a PVI Monitor which seems to be the link between the PLC and the HMI.

The PviMon.exe has version 1.53

I can see in the help for the PVI Monitor, that I have the following options to start a server that uses the PVI:

  • OPC-Server
  • DDE-Server
  • WWDDE-Server
  • Web Server

If I turn on logging from PviMon I can see entries like this:

>>> 07-09-2025 23:00:44.309 SvIntf.GetRequ S=0050 Pn=lnina2/com1//RHE_S_38 Svc=RD Dl=1 Offs=-1
>>> 07-09-2025 23:00:44.309 SvIntf.Accept S=0050 Pn=lnina2/com1//RHE_S_38 Svc=RD
>>> 07-09-2025 23:00:44.579 SvIntf.PutReadData S=0050 Pn=lnina2/com1//RHE_S_38 Len=1 Offs=0
. 00
>>> 07-09-2025 23:00:44.579 SvIntf.Quit S=0050 Pn=lnina2/com1//RHE_S_38 Svc=RD

My first try is the OPC-Server since this is what I’ve used for the same task on other machines, but for those it was OPC UA.

I’ve executed PviOPC.exe /RegServer as per the documentation

I can then launch PviOPC.exe but can’t connect to/find it.

!!!Apparently, I connected to some kind of PVI OPC server on this PC!!!

I successfully connect from another computer with kassl dOPC DA Client using COM (it finds the server automatically)

The OPC-Server is discovered as

B&R.PviOPC.2
BR PVI OPC DA _EA SERVER

However, I can not see any tags, except some default system tags.

This make sense, since I haven’t configured which tags that should be exposed on the OPC-Server.

This is where I need help.

I tried to configure (see below), but I don’t think I succeeded.

PN: @/Pvi
PD: LM=100 TC=15
PN: @/Pvi/LNINA2 OT=line
PD: CD=LnIna2
LD: EV=""
PN: @/Pvi/LNINA2/COM1 OT=device
PD: CD="/IF=Com1 /BD=57600 /RS=232 PA=2"
LD: EV=""
PN: @/Pvi/LNINA2/COM1/RHE_S_38 OT=pvar
PD: CD=PV1 RF=250 AT=RW
LD: VT=i32

From the PviMon’s log, I can see that PviOPC client attached and some “CreateRequ” & “CreateResp“ lines

>> 07-09-2025 23:00:42.557 Comm.ClientAttach CId=8b830004 Name=PviOPC.exe ComType=0 TC=15 TR=0 PT=0 LM=100
>> 07-09-2025 23:00:42.587 Comm.CreateRequ CId=8b830004 RId=80000001 Name='@Pvi/LNINA2' OT=Line PDesc=(CD=LnIna2) CDesc=() Msg=(NULL)
>> 07-09-2025 23:00:42.587 Comm.CreateResp C=009f RId=80000001 Msg=(CBA:100051a0,1)
>> 07-09-2025 23:00:42.587 Comm.CreateRequ CId=8b830004 RId=80000002 Name='@Pvi/LNINA2/COM1' OT=Device PDesc=(CD="/IF=Com1 /BD=57600 /RS=232 /PA=2") CDesc=() Msg=(NULL)
>> 07-09-2025 23:00:42.587 Comm.CreateResp C=00a0 RId=80000002 Msg=(CBA:100051a0,2)
>> 07-09-2025 23:00:42.587 Comm.CreateRequ CId=8b830004 RId=80000003 Name='@Pvi/LNINA2/COM1/RHE_S_38' OT=Pvar PDesc=(CD=PV1 RF=250 AT=rw) CDesc=(VT=i32 EV=) Msg=(CB:0041fb10,0)
>> 07-09-2025 23:00:42.587 Comm.CreateResp C=00a1 RId=80000003 Msg=(CBA:100051a0,3)

I don’t have access to the source-code of the PLC or HMI-application (written in Borland Delphi).

I have a few paradox db-files where I can detect some variables/tags and it looks like the tag in my examples above (RHE_S_38) is a boolean if that helps for the configuration.

Please advice me how to proceed further

Regards

Niclas Rådström

In the PviMon you have the possibility to create a Snapshot.

This will contain information about all variables used in the Delphi application.

If this snapshot contains the wanted production data, is the question.

See also post:

Upload program from PLC SG2003 - Ask Questions - B&R Community

In the mentioned HowToBackupSG3Targets_eng_AT.pdf it is described to read out information from the plc (like value of variables) with the PVITransfer tool.

Hi

Thanks for the tip!

The snapshot contains all the tags/variables that I need. The most interesting are these:

Pn=lnina2/com1//messwert[48] INT
Pn=lnina2/com1//jobdaten[1] UDINT

But how do I configure the pviopc.cfg?
In the example cfg it states:

# valid PVI data types for OPC server (VT=...):
#   i8, u8, i16, u16, i32, u32, f32, f64, string
#   (no support for structures and arrays)

Does it meen that the variables that I need, can’t be used at all since they are arrays?

I also noticed that there are 2 forward slashes after com1 in my snapshot. In the example cfg there is a “Station” and a “CPU”. Why do I not have the same structure?

Regards
Niclas