Eric Miller

what is this instruction?

10 posts in this topic

I am new a entry level programmer that has never used Omron before. I am attempting to added a little bit of code to an existing program but cannot figure out what one of the instructions are that was used in the original program. I've tried searching for it in the manual and online and haven't had any luck finding it yet.

i attached a snippet of the symbol. It looks similar to a closed contact but has 2 lines on the right side of it (symbol W75.11   Temp_Turnoff_Second_SP)

When I click on it, it says ANDNOT. but when I try to create a new symbol, it does not look the same as the original? I created a new symbol Temp_Turnoff_Third_SP, but it shows up as a normal closed contact. if i try to edit the original contact, it also changes to a standard closed contact.

 

what am i missing here...?

CaptureOmronInstruction.JPG

Edited by Eric Miller

Share this post


Link to post
Share on other sites

DIFD - Differentiate Down turns the designated bit ON for one cycle when the execution condition goes from ON to OFF (falling edge).

Share this post


Link to post
Share on other sites

That means that the address (W75.11 in this case) is controlled by a DIFD instruction.  The contact itself is just a regular NC contact, but the bit will not act as if it is controlled by a coil.  As I was typing this, @Knox replied.  I agree with him ^, trailing edge instruction.  When you typed ANDNOT to try to replicate, you must have chosen an address that was not controlled by a DIFD instruction.

Share this post


Link to post
Share on other sites

Perfect! thanks for the quick replies and help!

I found the instruction and think I am good to go now. I hadn't copied the line with the DIFD symbol to the new section yet. As soon as I did that and changed the symbol names, everything looks right now!

 

I started running this using the Work Online Simulator and it seems to be functioning properly!

 

one thing I haven't figured out yet is how to 'set the value' in here. This is for an analog input for a fluid temperature and i wanted to test the code that i've done for multiple Temperature setpoints. i tried setting the value in the attached picture but it didn't hold (i'm assuming it only sticks for a single scan of the program?)

CaptureOmronSetTemp.JPG

Share this post


Link to post
Share on other sites

Since 2005 is an input from an analog module, it is overwritten by the analog module the next time the PLC scans.... if you want to test the functionality, put a dummy address that is not used in the program (or by an I/O device) and then test.  Or go offline from the PLC and test in simulation.

 

Share this post


Link to post
Share on other sites
1 hour ago, Eric Miller said:

thank you! i was hoping for an easier way, but this works!

Yes, it is the nature of the beast.  The input will always be updated, no real way around that.

Share this post


Link to post
Share on other sites

I thought I'd be able to get around it since I'm not actually hooked up to a PLC. But I am still confused a bit tho. Where does that X:2009.04 address actually come from? I have found it in the program but don't see anywhere where it would change state of that bit? 

***I have attached the full program that i am working on***

I am also having trouble with this section of code. I think it's just the CMP and P-GT instructions in rungs: 4, 12, 21 that arent working? they should turn a Water Cooling Solenoid On/Off, but they're not. in the attached picture 60 is NOT greater than 70 but im still getting a true bit out of it?

I set the Oil_Temp D148 to 85(degrees) so its higher than my Minimum Oil Temperature and the Cool1_Solenoid goes high as it should. but once i lower the temperature back down under its SetPoint of 70 (Task: CIR_COOLING, rung 4), the compare statement doesn't seem to update?

 

to start this program, must 'fix' the Oil_Temp D148 in task: ANALOG_SCALING (bottom of rung 5) and change D148 to at least 80 (minimum temp set point).

and also set the Oil_level_Low_Low and Estop on rung 1

Local_ModifiedCOPYof_A-2675 V1.07.optLocal_ModifiedCOPYof_A-2675 V1.07.opt

Local_ModifiedCOPYof_A-2675 V1.07.cxp

 

 

capture2009-04.png

 

CaptureCompare.JPG

Edited by Eric Miller

Share this post


Link to post
Share on other sites

Look at the manual for the analog module.  It occupies multiple words of memory based on the starting address on the rotary switches.  Each module gets 10 words, starting at 2000, offset by the module number, and the modules each use them differently.  2009.04 would be coming from the module whose switches are set to 00, so it occupies 2000-2009.

Share this post


Link to post
Share on other sites

@Eric Miller:  I missed the fact that you were already using the simulation mode.   I had no problem changing the value of 2005 in simulation mode, using your program.  The picture below shows the value of 2005 being 2000, which I manually entered:

5aaadff2a7591_SCLSim.thumb.jpg.f73884711

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now