Bit that doesn't go anywhere

It is a Step7 program.

Seems to me you got plenty of options handed to you.

What I wonder is, does the alternating bit cause you any problems, or are things running as they should?

You can upload your program to https://www.wetransfer.com/ and share the download link if you want.
 
Any chance there's a PC or a weld controller with a profibus or profinet card in this machine? Still wouldn't explain why it's turning on unexpectantly, but it could be the source of your state change.

It's not turning on unexpectedly. It's turning on at the right time. But we've identified that we can significantly increase our output by changing when this step operates, or even removing this guard completely, and getting rid of the step. But it's hard when we can't work out how it's being triggered.
 
It's not turning on unexpectedly. It's turning on at the right time. But we've identified that we can significantly increase our output by changing when this step operates, or even removing this guard completely, and getting rid of the step

If you want to run it in addition to the times it's running now, add a branch & check a bit you set when you want it to run; If you want it to only run when you say then add an Always Off input on the line with M403.2 and add your branch - or change M403.2 to your bit. Just test it to make sure there's no unexpected result/operation if you disable M403.2

(Best to find out how it's being triggered - try the WeTransfer site & post it)
 
If you opt for the above suggestion, create a new DB and use bits from the DB instead of M bits (as you don't know which M bits are being used).
 
Gitter offnen translates from German as "Lattice Open". Maybe a profibus connected proximity or limit is causing the input to cycle somewhere near the lattice - wherever that is.
 
Since "Job 20" is Bit M402.3 and "Job 29" is Bit M403.4 these are obviously steps in a sequencer which starts counting its Bits in MB400. Since the Bits are climbing sequentially it's not being handled as a WORD or DWORD as is often the case and is almost certainly being handled indirectly, which explains why you can't find anything in the X-Ref.

There must be an FB or FC which handles the sequencer so that's where you need to start looking. Since the comments are in German you need to look for a program including the words "Schrittkette" or "Verwaltung".

As LD says, it would go quicker if you could post the program.

@Seawolf "Gitter" in this case translates more like "fence" in the sense of "safety fence" and the output Q91.4 which is being switched is commented (curiously enough, in English - apparently I'm not the only one who does mixed language comments!) as "safety guard open".
 
Last edited:
Are there any "know-how protected" blocks ?
I think that these blocks are not included when the x-ref is generated.

Apart from that, if the address is accessed via pointers, it wont show up in the x-ref.
You can try to open the various code blocks, switch to STL and search for "P#".
 
Generally speaking, I think the kind of programmer that uses knowhow protected blocks is unlikely to use a direct address inside one but hey... It can be done.

Come on OP, post the code as a library. There are many people here that enjoy a challenge and will tell you how it is done.

Nick
 
Last edited:
Is SFC20 been used in the program??

The SFC20 is blockmove where the data areas can be specified in the "ANY pointer" format.
The transfer information to the block: P# Area ID Byte.Bit Data type Repeat factor

P# M 400.0 WORD 12 = Declares the memory area from M400.0 to M423.7

So the blockmove can do the trick with the missing bit
 
I worked it out. My understanding is that it's a valid way of achieving what the programmer wanted to do (it works), but the method used makes it difficult to search.

There are six data blocks containing a list of steps. Which one is used depends on a selection made on the HMI. In this case, whether to take no samples, one sample, or two samples.

Here the data block is selected.



Further down, the job output is assigned to the memory bit.



The only way I was able to find it, was by scrolling through the block while monitoring, until I saw numbers that made sense in the context of the information I was looking for.
 

Similar Topics

See the screenshot of EIP tag list. We are trying to read in a digital input that is hard-wired. It is shown here as I31.1. I believe we cannot...
Replies
7
Views
268
A couple days ago I accidentally toggled an alwasyoff bit. The issue is it was set up as a single OTU on a rung, nothing else, and used as XICs...
Replies
3
Views
219
Hi I have an old panel builder 32 that I’m replacing for a factory talk me hmi . In the plc for the old panel builder there is a coms bit for the...
Replies
0
Views
68
Hello, Haven't been on in a while. I need to generate a bit level pdf of the I/O for RSLogix 500. I can generate a report but it just shows the...
Replies
1
Views
140
I tried researching but I still don't quite get it. As far as I understood, it's used after a function is called in STL and then if the function...
Replies
1
Views
133
Back
Top Bottom