twstevic

MrPLC Member
  • Content count

    39
  • Joined

  • Last visited

Posts posted by twstevic


  1. I have a slightly different problem. I am migrating a project from SLC500 to Compact Logix. I have used the  RSLogix Project Migrator  that did a fair job with the logic, however what I need is a tool, or product that will read all of the 'values' from the SLC. The OEM wrote a generic program for the mixers the PLC runs and they have 'configuration' registers to change the operation of the software. For example, N22:16 may be a configuration for a motor. If N22:16 = 0, the motor is single speed, if N22:16 = 1, the motor is two speed, and if N22:16 = 3, The motor has an inverter controlling it. The only way I have found to transfer the values is to manually go through a printout of the downloaded SLC program and manually enter them into the Compact Logix controller. Surly, there is some tool to suck all the values from the SLC???


  2.  

    I agree that the size of the array may be the cause. My Lane_Control array has 145,600 members. If I start SS without the Lane_Control array tab and add it after I am online, populating the watch table takes a couple of minutes. In this case, I was online and made a program change using Instance 1 of SS. When I synchronized Instance 2 of SS, the program locked up. I could not do anything with Instance 2 except kill it with the task manager. This has happened a total of three times in the last couple of weeks. I consider it a major BUG that needs to be fixed.


  3. On the second instance of SS V1.18 running on the same computer, after synchronizing a project, the 'Initializing the Table Watch Window' message came up. It has been there for 3 hours. I had to End the task with the Task Manager. Backing up Variables sometimes takes 30+ minutes.

    Still need to fix the keyboard handling routine so text can be entered faster while online. 

    Capture.JPG


  4. Andy_P,

    Not exactly what you are asking for, but;

    Create a Union (Mine is called DWord_Bit)

    Member 1 = DWD - Base Type = DWORD

    Member 2 = Bit = Base Type = Array[0..31] Of BOOL

    Then when you create a variable myVar1, use Data Type DWord_Bit

    For Dword operations 'myVar1.DWD' := DWORD#16#123F;

    For bit operations 'myVar1.Bit[1] := True;

     


  5. I disagree with the retained variables. I have never set the checkbox to clear present values. I have an array called Lane_Control[1..624,1..25] the data type is a structure with 11 members. It very often is cleared when I make vast off-line changes. It seems to happen when I add or remove a fair number of Global Variables.

    It may not be illegal code, but the SHL instruction does not work. An instruction that does not work should be illegal.

     


  6. This SHL instruction error (nothing on the output) should cause a compiler error:

     

     

     

    Also, When doing a program synchronize, most times the variables are not cleared, sometimes they are. The software should warn the user if the variables will be cleared, and offer an opportunity to back them up before they are lost.

    Capture.JPG


  7. From the beginning of time (computer time) a keyboard shortcut for copy has been Ctrl + INSERT, a shortcut for paste has been Shift + INSERT. When working in the Variable Table, Shift + INSERT not only pastes the content in the clipboard, it also inserts a blank variable field. THIS IS WRONG. Please, Omron, fix this!


  8. Hi Michael, Yes, I did not mean 'force'. I created the tag Y3400_00 and set it to %3400.00 using the AT assignment. I tried to set the bit true using the Watch Window, and I also put the tag as a coil in a line of logic. Both are unsuccessful. When using the watch window, the true button is highlighted, but the online value stays at 0. When used as an output in a line of logic, the logic leading up to the coil is highlighted, but the coil itself remains un-highlighted. (like when you have duplicated outputs in an older controller when some other logic turns off a coil that the logic says should be 'on'). I also tried setting a whole word as Y3400 and set it to %3400 using the AT assignment. No luck that way either.


  9. I am working on  a project that uses an NJ501-1320 with a CJ1W-DRM21 (sw version 2.1). I have the devicenet working with some DRT2 I/O modules, some SMC valve blocks and two Fanuc robots. The DRM21 seems to be happy with the network settings and sees all of the slaves that are connected. My question is how to format the data to communicate with the robots themselves. Robot 1 has 10 bytes in and 40 bytes out (as seen by the PLC) but I can not force a bit and detect it in the robot. I have tried using tag name Y3400_00 (BOOL) and %3400.00 (Network) Output, I have tried Y3400 (Word) and %3400 (Network) Output. The IO assigned to Node 40 (robot 1) is bank 2, 3400.00 - 3419.08. Has anyone figured out how to do this?


  10. A new one for today:

    The project I am working on involves taking three CJ PLC projects and combining them into One NJ PLC project. While working, I have one or two instances of CX-P open, and one instance of SS open. It does not always happen and I can not seem to find the exact reason or circumstances that cause this to occur, but, at times, when I leave the SS window and do something in CX-P, upon returning to SS, some of the keys and sometimes the mouse pointer do not work properly.  The keys I have noticed are 'i, I' to insert an instruction in a ladder rung, 'n, N' when working on structured text (try to type 'END_IF' without an N), and the mouse pointer when trying to select a ladder contact. The mouse pointer will select the variable name or the comment, not the whole element. The only way I have found to make these work again is to click multiple times on multiple objects within the editing window until the mouse pointer actually selects a logic element. At that point, all of the keys work again.  I do not know how one could even program this if that was the desired behavior.


  11. Crossbow: Yep...Thank You.

    Three for today:

    Make the compiler smarter. When you do a build, you may get 2-3-4 errors. They may all pertain to the same problem (a variable name). The compiler could be smart enough to realize that this is the same error. After doing a build and getting 10 - 20 -30 errors, if you start fixing the errors from the top, say error 1, that seems to screw up some 'pointer' so when you then try to fix error 2, the software does not take you to the correct location. The only way around this that I have found is to start fixing errors from the bottom up. Or writing code without errors. Depending on how the program is stored in binary form, this may be a little harder to fix.

     

    When editing a ladder diagram, if the cursor is on an input element, pressing hot key 'W' will add a parallel contact. There does not seem to be any way to add a parallel line below an output. Have to select it from the context menu. A generic 'add a parallel line anywhere' hot key would be helpful.

     

    After sorting variables, it would be handy if there were an option to retain the sorted list even through a program save and reload.  If I sort by name, keep that list static and add any new variable names to the bottom. The same if I sorted by data type or comment. typically, when starting a project, I define all of the IO first, so the top of the variable list always has my X..... and Y.... variable names I have to scroll through when looking for a specific name.


  12. The variable comments behave a bit odd in the project I am working on at the moment. Per the attached images, in the ladder editor, variable 'Serial_Number_E_Mem_Write_Complete' shows a comment of 'W121.00'. When I click on 'Go To Variable Table', the entry in the table shows the comment as being empty. If I add a comment in the variable table, it does not show up on the ladder screen, if I modify the comment on the ladder screen, the comment does not show up in the variable table. If I add another instance of  'Serial_Number_E_Mem_Write_Complete', the comment that is displayed in the ladder editor follows the new instance. This behavior is not constant, most of the variable/comment pairs work correctly. The only explanation I can guess at is that part of the project was developed using SS V1.15 and I am now at V1.16.

     Capture4.JPG.cbc53f452a989dca13fd82fdde1

    Capture5.JPG.7e8ac47779e0ecd3f2672cdf247


  13. Donovan: Yep, I found that. Thank you. Why the alignment is not turned on by default beats the crap out of me.

    Pet peeve of the day:

    You enter a variable name: 123ABC, after you press enter, you realise that should have been 123_ABC. Go to the local variable table and change the name that you just entered, but the name is not updated in the editor. If you don't manually fix the name in the editor, the discrepancy is not found until the project is built.

     


  14. Crossbow: Yes, you are correct. I never use 'W' in CXP, I always moved the cursor to the 'cell' I wanted an input or output to be and used the drawings tools '|' & '-' to make the connections. 

    My current pet peeve. Would it be so hard to have output coils line up with the rung width, instead of this?

    Capture.thumb.JPG.7aab3add67e06c63a0bae5


  15. Current PITA complaints:

    1:When in the ladder editor, as the pane gets full and another rung is added, the rung appears at the bottom of the screen without even showing the contact comments. I have to scroll down to see them. I would like to be able to scroll down until the rung I am working on is in the middle of the edit pane. In CX programmer, you can scroll down until no ladder logic is even visible in the editing pane.

    2:In the ladder editor, when adding a contact to a rung, as you type the pick list come up to show variables that are already registered, but without the variable's comment. I am currently working on a project that combines two CJ programs into one NJ program. I am using the original CJ bit address comments as the new NJ variable name. For example, bit address comment 'Conveyor Starting' is present in both CJ programs. CJ 1 has a Bit address of W123.00 with the comment 'Conveyor Starting', CJ 2 has a bit address of W54.12 with a comment of 'Conveyor Starting'. The NJ program has two variables 'Conveyor_Starting1' with a comment of ''MR_W123.00" and a variable 'Conveyor_Starting2' with a comment of "RT_W54.12". When I type the contact address 'Conveyor_Running' the Pick List shows 'Conveyor_Running1' and 'Conveyor_Running2'. If i choose 'Conveyor_Running1' and it is the wrong reference to the original CJ reference, I have to go back and edit the variable name. If the comment for a variable name were shown in the Pick List, it would save several keystrokes. This could be an optional setting, but IMHO, being able to see the variable comments in a Pick List would be very helpful.

     

     


  16. Crossbow, I understand that the CPU needs the null character to separate one string from another string in memory, but the programming software can certainly hide the requirement that makes you declare a STRING[5] for four characters. Or is that another silly requirement from IEC 61131? I have never needed to declare a string length larger than the actual number of characters used in any other programming language that I can recall. Is this really common in other PLC brands? I need to get out more.