CX-Programmer CJ1M

This is the behavior you are seeing?

Especially the part about "stayed 0 for more than 600ms (0.6s]?" So you saw T0512 expire after those 600ms and you saw T0512 change from 0 to 1?

In other words, is it possible that another container moves in front of TS14, so TS14 becomes 1, and timer T0512 resets to a value of 0 before timer T0512 expires?

Because if you did see T0512 expire, and it is not possible that T0512 did not expire, then @MaxK is right in suggesting that this rung 46/3227 was not evaluated.

TL;DR

  • Rung 13/3048 ensures that the value of D4113 cannot be 0 whenever
    • The value of TS14 is 1 (Elvis is in the building)
    • AND
    • DS4112 is greater than 320
  • Rung 78/3311 is a debounce timer to ignore short periods i.e. of less than 600ms, when the value of TS14 is 0 (Elvis is not in the building on this scan cycle)
  • Rung 48/3227 puts a value of 0 into D4113 whenever the debounce timer T0512 expires (Elvis has left the building)
Another possibility is that we are not perceiving the actual order of the evaluation of these rungs' logic and the execution of their outputs because of how they are arranged in the image: on each scan cycle, is Rung 13/3048 evaluated before Rung 78/3311, and is Rung 78/3311 then evaluated before Rung 46/3227? I don't think it makes a difference as it should only delay the expected logic by a scan cycle or so, but I have not looked at it too hard.

Remember: the PLC cares not a whit what you want (or expect or think) it will do, but it will mercilessly and inexorably to exactly what you tell it to do.

Those rung are in the same section, so 13-->46-->78. I saw yesterday it switch from 0 to 1 but not execute the mov instructions.
 
Those rung are in the same section, so 13-->46-->78. I saw yesterday it switch from 0 to 1 but not execute the mov instructions.


If 78 (NC TS14 => T0512) executes after 46 (NO T0512 => MOVe 0s), then it is possible for

  • On scan cycle N, with TS14 value = 0
    • 13 does nothing; TS14 value is 0
    • 46 does nothing, T0512 value is 0
    • 78 to result in T0512 value being 1 (timer expired)
    • T0512 value is displayed online as 1
  • On the next scan cycle, N+1, with TS14 value = 1
    • 13 does nothing, D4113 is not 0
    • 46 MOVes 0s into D4013 and into D4113, T0512 value is 1
    • 78 resets T0512, T0512 value becomes 0
    • Displayed values of T0512, D4013 and D4113 do not change as scan cycle is faster than display cycle
  • On the next scan cycle, N+2, with TS14 value = 1
    • 13 re-writes D4012 value into D4013 and D4112 value into D4113
    • 46 does nothing, T0512 value is 0
    • 78 resets T0512, T0512 value remains 0
In all of that, the values of D4013 and D4113 will be 0 for but one scan cycle, and you will not see those 0 values displayed, which would seem like the MOVe instructions on rung 46 did not execute.
 
Between current rungs 46 and 78, add a rung:

[NO T0512]--[= D4113 #0]--[counter A]
Between current rung 13 and 46, add a rung:
[= D4113 #0]--[NO TS14]--[> D4112 #320]--[counter B]
and watch to see if those counters increment. I suspect they never will.
 

Similar Topics

I've been having trouble getting online with a CJ1M-13. i am using a Keyspan USB-Serial cable and all of the com settings look fine. Everytime I...
Replies
4
Views
7,287
bonjour je souhaiterais savoir si c'est possible de faire communiquer Cx-programmer ( logiciel de programmation des automates Omron ) avec...
Replies
2
Views
156
Dear All, I need a sample PLC program to count the output pulse of a mass flow meter so that a specific amount of mass (for example 100gm)can be...
Replies
2
Views
146
I need a good website or tutorial to learn plc programming Thank you
Replies
10
Views
509
Hello ! I am trying to use an omron cj2m-cpu33 with a CP1W-CIF01 plug in serial connector to talk to a zebra ZT610 printer. I am getting the data...
Replies
8
Views
372
Back
Top Bottom