Siemens OP7 program conversion to Delta DOP107BV

bambam79

Member
Join Date
Apr 2021
Location
Melbourne
Posts
7
I have converted a Siemens OP7 program to a new Delta DOP107BV.

It is all working as expected except for the timer values. I am using MW36 as the example one. I have attached the Tag setup in OP7, DOPSoft and the PLC where it is used in the timer.

The value reads 4092 on the Delta HMI and the operator tells me it is meant to be 0.2 (s)

Any help would be much appreciated.

OP7 - MW36.jpg DOP - MW36.jpg PLC - MW36.jpg
 
Never used Delta but if like other platforms the timer value could be in milliseconds, traditionally, timers were either in order of 10ms i.e. a value of 1 = 10ms, 100, 1 second (1000ms) however, with the introduction of the IEC type timers the variable for the timer value is "Time" i.e. T#0.2s which equates to 200ms It may be that this is what is being displayed however, the values given do not quite make sense I would look at the documentation to determine how the timer SP is formatted. (note: most IEC timers although in ms it actually works in 10 or 100ms so it does not actually count individual ms but in chunks of 10 or 100 with the exception of high speed ones.
Note: IEC timer values are often 32 bit so in the pic below only showing D0 & D2 which are the lower words of the timer variables but you can see the timer values are in ms but increment in 100ms increment.

IEC Timers.png
 
It is an S5Timer, not an IEC timer.
The TV setpoint value is specially formatted, Siemens "S5TIME" data format.
Does the Delta OP have the possibility to display S5TIME ?
If not, it gets complicated. The first 12 bits are for a BCD code that represent the value, and the last 4 bits specify the timebase.
 
The delta doesnt have an S5TIME data format

It only has:
BCD
Signed BCD
Signed Decimal
Unsigned Decimal
Hexadecimal
Binary

It doesnt look like it has any special setup in ProTool as per the pic I attached?

The only thing I could find was the 'Display Format' in the PLC for MW 36 is 'HEX'

When I select hex in DOP it changes the input keyboard to a hex one that does not allow decimal which is what the operator used to enter the time on the OP7
 
out of touch with S7 now but perhaps the only solution is either change the timer type or perhaps do an integer to S5 time if there is one in the PLC that is assuming the HMI field is an integer with assumed decimal place i.e. 0.2s is actually 2 decimal.
 
It doesnt look like it has any special setup in ProTool as per the pic I attached?
It says "Timer" in the screenshot from Protool. "Timer" is another word for S5Timer, yes Siemens is inconsistent in the way it names things.

edit: If the BCD format in the Delta panel mentioned below does not work out, then I think you need to make a change in the S7 program.
If we assume that the timebase is 10 ms, the setpoint value can be from 0-9.99 sec.
Timebase 10 ms the first 4 bits are all off, so it makes it simple.
In LAD use I_BCD to convert MW36 and transfer it to a new unused address. Then instead of MW36 pass the new address to the S5 timer's PV.

In the Delta panel you may have to do somethings to imply that there is a decimal, so 123 displayed as 1.23.

Edit: There is a BCD format in the Delta, this could make it possible without the conversion in the S7 program.
You have to make sure that only between 0-999 can be input. And does it allow you to add an implied decimal point ?
 
Last edited:
I ended up making a script to convert MW 36 into the S5Time format

See below. Appreciate all the help and responses.

VAR
TotalTime : INT;
HH, MM, SS, MS : INT;
END_VAR

// Read the value from MW36 into TotalTime
TotalTime := MW36;

// Calculate hours, minutes, seconds, and milliseconds
HH := TotalTime / 3600000; // Hours
TotalTime := TotalTime - (HH * 3600000);
MM := TotalTime / 60000; // Minutes
TotalTime := TotalTime - (MM * 60000);
SS := TotalTime / 1000; // Seconds
MS := TotalTime - (SS * 1000); // Milliseconds

// Display the time values in the desired output fields
OutputFieldHH.Text := INT_TO_STRING(HH);
OutputFieldMM.Text := INT_TO_STRING(MM);
OutputFieldSS.Text := INT_TO_STRING(SS);
OutputFieldMS.Text := INT_TO_STRING(MS);
 

Similar Topics

We have a machine that is using a 313C plc processor, connected through Profibus (I think) to an OP7 HMI. I need to change the way some of the...
Replies
1
Views
2,713
Q1. I want to upload the program from one OP7 and then download to another OP7. Is it possible? Q2. I install a CP5613 PCI card in a PC to provid...
Replies
1
Views
7,744
I have a customer who had a faulty Siemens OP7. They sourced a replacement. They have the original program. I downloaded the program to the...
Replies
10
Views
2,532
Hi Guys, Hoping we still have some Siemens Old hardware Gurus on here. We are trying to support one of our long time customers. Who have obtained...
Replies
4
Views
922
We have a customer with a very old piece of equipment (circa 1999). That has a OP7 Siemens HMI unit. Their current unit has gone down, and are...
Replies
14
Views
6,247
Back
Top Bottom