Download bcd conversion error siemens for windows 7 64bit

"BCD conversion error" but see no reason

Created by: #dP at: 9/28/2017 12:27 AM (20 Replies)

21 Entries

Entries per page: 10 | 20 | all

Last visit: 12/24/2017

The error on my PLC ( name = CPU1, type = CPU313C, old! )

says something similar than mentioned on [LINK]

BCD conversion error

Affected register: accumulator 1

Requested OB: Programming error OB (OB121)

OB not found, or disabled, or cannot be started in the current operating mode

I can not remember the Event ID [****] and I do not know how to use this to help finding the source of the issue.

* CPU1: 6ES7 313-5BE01-0AB0 V1.2 (MMC: 64kB)

. CPU2: CPU314 (6ES7 314-1AE04-0AB0)

At first [6ES7 313-5BE00-0AB0 V0.3] was installed. Because of the problem, the current CPU1 was installed. CPU1 is new to the installation, but was used elsewhere before.

CPU2 uses X_PUT and X_GET to link to CPU1. CPU2 has a shorter cycle time. The communications seems to be working. Disconnecting CPU1 from the communication network has no effect.

Load memory: less than 15%

FB30 is 6.8kB in size. (max allowed is 16kB?)

FB30 is (now) called directly from OB1.

..inputs: 4byte BOOL, 1 S5TIME, 1 INT

..outputs: 2byte BOOL

..static: 2 INT, 18byte BOOL

..timers: T0 - T19, 0 IEC TIMERS

FB30 is coded in a mixed of STL (>5%) and LAD

There is no BCD numbers used other than timer values (S5TIME). Only one timer receives a target value from a variable, all others are fixed S5TIME values (example: S5T200MS). Jumping over the timer using the variable, has no effect. Two timers are called in STL, others in LAD.

There is no indirect addressing used. Symbolic addressing is used except two places where direct addressing is used.

CPU1 seems to run with OB121 loaded, but the red error lamp stays on - which will cause questions from the customer.

24kB program and 6.8kB code block.

Are there any suggestions on how to diagnose the problem further?

Productivity Through Innovation

Last visit: 12/13/2017

have you got any timer with setpoint calculated in runtime or provided via the HMI?

The S5Time setpoint is a time base and a BCD value.

You need use FC/SFC to convert time in ms or s to S5Time.

if you need to have a calculated/configurable time you can change timer to

SFB TON/TP/TOF (SFB4 and others) and use data type TIME which is internally dint in ms.

from hmi the TIME can be entered as a value with 3 decimal points (or simply multiply hmi setpoint by 1000 if it is in seconds), for example when you enter value 12345 it is 12.345seconds

Last visit: 12/24/2017

Thank you for responding.

have you got any timer with setpoint calculated in runtime or provided via the HMI?

Hoping not to discourage further conversation -

please find an extract from my problem statement handling your suggestion:

Productivity Through Innovation

Last visit: 12/24/2017

All timers in FB30 is now in LAD code and all time target values are fixed/constant values.

Below is an extract from the diagnostic buffer.

6ES7 313-5BE01-0AB0 Hardware 1

Event 1 of 10: Event ID 16# 2521

BCD conversion error

Affected register: accumulator 1

Requested OB: Programming error OB (OB121)

Priority class: 1

Internal error, Incoming event

12:47:12.225 PM 09/28/2017

(Coding: 16# 2521 0179 0074 0000 0000 0000)

What does the "coding" value mean?

Productivity Through Innovation

Last visit: 12/13/2017

Temporarly delete OB121 which prevent stop

run PLC and when it stops go to STACKS (in information window where you see diag buffer)

it will show you at which block PLC has stopped.

This contribution was helpful to

Last visit: 12/13/2017

Please upload source of FB30 or the whole project so we can have a look

Last visit: 12/24/2017

Please upload source of FB30 or the whole project so we can have a look

May I respond per PM on this?

Productivity Through Innovation

Last visit: 12/13/2017

Last visit: 12/20/2017

Once I had a similar problem with OB1. After 5 years running, out of the blue OB1 gave an SF error. I'd tried everything: replaced CPU, MMC, etc. None of them were solving my issue. Long story short: I've copied the code inside OB1 to a text editor, deleted OB1, made a new one and pasted the code back. Downloaded to the PLC and everything was back to normal.

Did you already tried to delete FB30 with its IDB and call (from OB) and started all over again?

Problems don't exist, only challenges.

Last visit: 12/24/2017

Hi Alex, good to hear from you!

Hope you are well.

yeah I have done that step several times already.

I even to a completely different PLC, developed from exported source.

My head hurts from hitting the wall so much!

Strange thing though.. if FB30 is the only piece being actively run through, the error seems to come in less regularly.