monkey

MrPLC Member
  • Content count

    21
  • Joined

  • Last visited

Community Reputation

0 Neutral

About monkey

  • Rank
    Sparky
  • Birthday 05/05/71

Recent Profile Visitors

1720 profile views
  1. Thanks for the suggestion. Most of the I/O is on DeviceNet Flex I/O so I plan to be able to swap the DeviceNet cable from the original to the new for testing and having the option to revert to the original by moving the DeviceNet cable back. 
  2. Yeah. I was going to re-write from scratch and make some improvements along the way when I get to that.
  3. Thanks for the reply. There are 6 total 5/04s on the line and they are all networked via DH+. There is no PLC to PLC communication but there are a couple PanelViews using the DH+ network to communicate to the PLCs. There are incremental upgrades to CompactLogix controllers and Ethernet based PanelViews scheduled for later this year through early next year. This is just an interim step to provide a backup plan until the upgrades are completed. 
  4. Can I download an old program (written with RS Logix 500 version 5.2) into a newer SLC 5/04 Series C with a higher FRN than my copy of RS Logix supports? I don't want to use any newer functionality. Just wanting to get a spare 5/04 and load the application software on so it is ready to swap out in the event of a failure. I see some 5/04's on eBay that are new in box but have a FRN of 11 which wasn't out at the time my version of RSLogix was created.  
  5. Spedly, When I said it worked sometimes it was because I was trying many different combinations of DIV sometimes with Integers for the source and sometimes with floating points. (the math register is NOT used when dealing with floating points) Guest, Thanks very much for the simple solution! You da man!
  6. I have a SLC 500 and am trying to calculate (on the fly) positions for a stepper card. The position step values are as high as 2627948 which must be divided into a 'thousands' part (2627) and a 'ones' part (948) for use with the stepper card command words. To do this, I want to divide the large number by 1000 (2627.948) and then extract the integer portion of the number. I have tried to move the floating point number into an integer register but it rounds the number as it moves into the integer register.
  7. DIV and Math Register

    I am using a SLC 5/04 and RSLogix 500 Ver. 5.50.00
  8. I am using the DIV to divide a large number (2627948) by 1000. The DIV instruction automatically rounds the answer which is placed in the destination. The online help file for the instruction says that the unrounded quotient will be placed in the math register MSW (S:14). This works sometimes but mostly does not. (the math register remains unchanged) Does anyone know what would make this not work? I am trying to separate the number into 2 integer files for use with the stepper card (1 integer would be 2627 and the other would be 948). P.S. I do have the Math Overflow Selected bit (S:2/14) set true.
  9. There is only 1 laptop with multiple users and it can connect to a network but the problem exists on and off the network. There are no other applications running and all non-essential services are stopped before attempting to start RSLogix. The user can run the program if the shortcut is modified to allow the program to be run as a different user. Also if I log in and try to run the application as the other user it crashes just the same. Something is tied to this specific user I just cant figure out what or how.
  10. I have a client with a laptop running Windows 2000 and multiple users. RSLogix version 5.0.0 runs fine with most users but 1 particular user cannot start the software (it crashes immediately) I have uninstalled the software and then re-installed as the user who cannot run the program. Still everyone else has no problem while this user cannot run. I have deleted the user profile and started over but that doesn't help either. Has anyone else seen this problem? Is there a registry entry that might not have been cleared when uninstalling the software?
  11. Ken, Thanks very much for the helpful (and speedy) information. I am glad I asked! Thanks again, Monkey
  12. Hello, I am writing my own DF1 driver for a robot to communicate with Allen Bradley devices. I am starting with the SLC family because that is what I use most. I have successfully handled the Link Layer programming and have so far integrated two commands for reading and writing directly to and from SLC memory using "protected typed logical read/write with three address fields" This works great for any word addresses ie. integers,timers,counters - you name it. I just can't figure out how to write a single bit. I don't see any command in the DF1 manual that is compatible with the SLC's and writes a single bit. BUT.... It is obviously possible because I set single bits all the time with panelview programs. And yes, they are using DF1 full duplex protocol!! Can anyone offer an explanation of how this is accomplished?? Any help would be appreciated
  13. Chris, I assume your PLC already has the lot # info or generates it. You can use the ACN (ascii string concatenate) to assemle a lot # from pre-defined strings and possibly an incremented integer. Then use the AWT or AWA instructions to write the info to the serial port. Of course you will have to include formatting characters CR,LF,FF etc. depending on the protocol that the printer needs. There are serial printers available, although I really can't recomend one. Also it is possible to create a "printer only" object in panelbuilder which can send information to a serial printer port attached to the panelview (depending on your panelview model) Good Luck, Monkey
  14. I am pretty sure what you want to do is not possible. RSlogix will compile the ladder logic to machine language that the Allen Bradley processors can run. This won't do any good for running on a Mitsubishi PLC. Even if they happen to use the same microprocessor inside both PLC's, the data structures for Allen Bradley and Mitsubishi are very different. Sorry, Monkey
  15. 1746-bas Or Serial Port?

    I have never used Allen Bradley's basic module nor do I have any idea what this zebra printer is. But, I have used the ascii commands in a SLC many times to communicate with other devices that speak ascii. In my opinion sending stuff this way is a giant pain compared to doing it in a basic language, but, if you want to use ladder logic it is possible. If you have 150 lines X 5 labels you may need a lot of room in your PLC's memory! I would create an ascii 'server' subroutine that can plow through a string file (i.e. ST9) sending each address out the serial port. This requires indirect addressing (ST9:[N7:0]) where N7:0 contains the string address you want to send. I set up a couple of integers as 'control' words. For example, N7:0 is the starting address of a string file, and N7:1 is the ending address. Say you want to send the contents of ST9:20 - ST9:50 to your printer. (you would have already entered the lines of code to send in the string file) First, move a value of 20 into N7:0(start address) and a 50 into N7:1(end address). Then enable a sequencer that uses the AWT or AWA instruction to send a string out of the port. For the source enter ST9:[N7:0]. Next step of the sequencer is to wait for the AWT or AWA instruction to be completed (ascii read and write commands do not happen imediately in the ladder scan. Instead the are queued, and are executed asynchronously to the ladder scan) Check the EM bit of the control file for the AWT or AWA instruction. Once the string has been written (EM bit true) increment the value of N7:0 (ADD 1 to N7:0 and store in N7;0). Check to see if N7:0 is greater than N7:1 (end address) if it is disable your ascii 'server' sequencer. If not, loop back to the top of the sequencer and process another AWT or AWA instruction. The address sent will be the next line from your string file. The whole thing also requires that you configure channel 0 to user mode with an ascii driver. And you will need to set up the termination characters to whatever the printer will require. Most likely you will use the AWA (ascii write with append) to write a string to the serial port (appending the termination characters i.e. CR-LF). As I said this will not be pretty (especially if you are used to using a basic language to send acsii data) but if you love a good challenge (as I do) your in for a lot of fun! Good Luck, Monkey