MrPLC Member
  • Content count

  • Joined

  • Last visited

Community Reputation

0 Neutral

About poovs

  • Rank

Profile Information

  • Country United States

Recent Profile Visitors

1836 profile views
  1. Welp... nevermind I guess... I implemented this in another way -- I guess I'll avoid using BPRGs
  2. Bump! Agreed, just came across this thread and would like someone to point me in the right direction to locate the CSCJ ActiveX Toolbox.
  3. Figured it'd be easier to piggyback on an old thread... I am having a similar issue and can't seem to figure out what I'm doing wrong. Using mnemonic within a block program as I've done for years, but now need to add another level of logic within the block. Original code only had the "SET ,IR1" -- now I have added the additional index register reference "LDNOT ,IR2" compiler errors: ERROR: Step at rung 22 (0, 3) - Too many inputs for output instruction, check mnemonics ERROR: Step at rung 22 (0, 7) - Too many inputs for output instruction, check mnemonics mnemonic: MOVR(560) DHF1_01_TO IR1 MOVR(560) DHF1_01_GRP IR2 LDNOT ,IR2 SET ,IR1 LOOP(809) EXITNOT(806) DHF1_GRP_CLOSE_KEEP LDNOT ,IR2+ SET ,IR1+ TIMW(813) 0083 GRPRELTMRVAL LEND(810) DHF1_GRP_CLOSE_DONE BEND(801) ideas?
  4. Just curious on this one... I'm coming from a discrete controls industry to fluid and gas controls... I know there isn't really a right/wrong answer here and there don't appear to be any ISA standard practices for this, but... How would you typically order/sequence your I/O terminals in field junction boxes? Groups of: Discrete Inputs + spare Discrete Outputs + spare Analog Inputs + spare Analog Outputs + spare Hart I/O + spare The initial plan is to bring everything back to the headend (PLC) via multi-conductor cabling... but grouping items in this way would allow for adopting remote/distributed I/O in the junction boxes if we later decide to... Any thoughts?
  5. ZCP and Arithmetic Flags

    Nice, makes perfect sense... just didn't occur to me to use an IR & loop. thanks for the elegant solution...
  6. ZCP and Arithmetic Flags

    So, I have an application where I need to do some data evaluation in a similar fashion numerous times... Basically I want to check if any words within a range of data have become non-zero between each cycle, and if so set a bit (used to push items onto a stack). In the past I've manually done this by XFER'ing the source data range [D100-D199] to another evaluation data range [D200-D299]. Then I would compare, each word [= D100 D200], [= D101 D201],... and have the output be my 'data has changed' bit. This is fine for small ranges (10 words at most)... What if I need to evaluate 100 words? I certainly don't want to have to program multiple lines of ladder just for evaluation... (as well as "waste" evaluation data ranges) It seems that the ZCP instruction will do what I need by providing [ZCP #0 D100 D199]. If any of the source data range is non-zero, it should set the Arithmetic Flag NE (not equal) // or inversely the EQ (equal flag) should be OFF. My problem is that when I have subsequent evaluations in rungs below using the ZCP instruction, the Arithmetic Flags seem 'delayed'? I have even tried inserting a [ZCP #0 #0 #0] before my next evaluation to "reset" the Arithmetic Flag to EQ, but... again it seems like the Arithmetic Flags remain set ( perhaps for an entire cycle?) Can anyone shed some light on this for me? Or suggest an alternative method...
  7. CX Common Components/CPS Upgrade FAIL

    Problem solved... Called in to Omron Tech Support after not receiving a callback for 6 hours and was given the following suggestion(s): Omron Technician had experienced the same problem in the past. Something to do with a problem in the Auto-Update Utility. Was able to locate the failing CX Common Components/CPS installation listed in Windows Add/Remove Software list. Attempts to remove software failed until a clean reboot without trying to run CX-One first. Once removed, CX-One runs properly without error. Then re-run the Auto-Update Utility from Omron247.com website, detected update needed for CX Common Components. Let the update download and install. Reboot; all is well.
  8. I've been using CX-One on my development machine for months without a problem. After a recent Omron rep visit, it was suggested to apply the CX-One Auto-Update tool in order to properly utilize some EIP/Datalink features. After doing so last month, things continued to work fine. I have not received any updates since then (to my knowledge). This morning (Monday) I boot up my machine and open CX-Programmer to find an installation problem with a CPS Version Upgrade that I did not attempt to allow. The installation process appears to not be able to locate said *update* and will not allow the software to run. In fact, upon selecting Cancel the process continues to re-attempt to locate and install (indefinitely). I must kill the update application from Task Manager. I have tried to run CX-One Auto Update but no updates are found. So now I am waiting for a call back from Omron Tech Support (which I absolutely LOVE)... Suggestions? Please don't say use "CX-One Remover" :( Screenshots attached...
  9. PMCR Comm. Response Codes

    turns out that in a completely unrelated section of ladder where I am communicating with some remote FINS nodes, I was using the automatic Logical Port setting (#0F) instead of stating a specific logical port number. Made perfect sense when I finally discovered the issue!
  10. PMCR Comm. Response Codes

    thanks, this is a step in the right direction... PMCR is definitely the comm. mode for the given port; I'll have to dig deeper to try to find out what is causing this response delay... Is the response delay referring to the local SCU, or the remotely connected serial device? I have tested PMCR functionality before without anything physically connected to the SCU ports without problems...
  11. PMCR Comm. Response Codes

    I am having some trouble with my PMCR execution... I am familiar with PMCR instructions and have used them many times in the past. I am receiving an error code &517 and cannot find a reference to what this error is. The instructions reference manual W340 pg 933 states to refer to manual W342 for other response codes not listed in this manual (only 4 are listed); but I cannot find anything relative in the given manual (only FINS response codes and C-MODE comms). Can someone enlighten me?
  12. Should I Use Function Blocks?

    This is very interesting... I have read about indirect addressing within a PLC but never attempted to implement. I use indirect addressing frequently within my HMI scripting to re-use a single screen/window for 100's of similar devices... perhaps the PLC should follow suit. thanks for the **ahem** simple example, it certainly pointed me in the right direction. I am going to abandon the FB method. Thanks for everyones' input.
  13. Should I Use Function Blocks?

    Bob, that is a good point: Most of the control systems projects we deal with are spec driven requiring us to be involved for 2-3 years post-substantial-completion. We will likely be dealing with the initial hiccups of the system... What I am running into as of late, is that in retrofit applications we are adding and removing devices on a regular basis in phases to reach the final completion on the project... Using regular ladder and "pseudo" points, I have to constantly maintain what symbols are being added, where to add them, and the same with what is being removed/deleted (if that makes sense)... Using FBs would allow me to only deal with the ACTUAL io points in most cases. Sure I would still deal with the Timers, alarms, etc on a onesie twosie basis but from where I am looking it would allow me to curtails some major obstacles... With all of that said, I still want to be able to generate the PLC code efficiently (and of course be able to understand and explain it to maintenance personnel).
  14. Should I Use Function Blocks?

    PDL, Many of these FBs will in fact contain timers (length of time to pulse the associated output), and in fact the timer value will likely need to become an input variable... I realize that I can manually create a new instance of these FBs to accomplish truly independent instances of the timers/values assoc. but is there a way to do this quickly... the manual method is not that appealing to me :)