Jump to content

Adreasler

Members
  • Posts

    16
  • Joined

  • Last visited

Everything posted by Adreasler

  1. The initialize and format subroutines are conditionally called on a SB2 [start-up bit] signal, which should be correct, those only need to be called once at the beginning. The Send subroutine is called by a subroutine that sets the SD card and Program Number values just prior to the Send routine. The Sequence is as follows: 1. Operator selects "Product Change" from the main menu display. 2. The display changes to a Selection screen with buttons for the various products to inspect. This Selection Screen has a subroutine that runs while it is active, said subroutine reads the buttons to determine what is selected. (This allows me to have multiple "pages" of selections while recycling the Memory Bits for the buttons, also allows making new pages easy when expanding the selections available) 3. The Selection subroutine attached to the page has a series of rungs for each button. The rungs for a button will, in sequence from top to bottom: 3a. Write the correct SD card slot and program number into the appropriate slots in the preformated data in the MI bank. 3b. Call the Send Data subroutine. 3c. Change the Active Display to the Main Menu Display, thus exiting the subroutine. I but the Send function into its own subroutine to avoid duplicating code in multiple subroutines. Should I instead have the selection screens set a MB "flag" to signal a rung in the main routine to call the Send subroutine, and continue to call the Send Subroutine until the "Sending" MB goes low?
  2. Here are the pertinent sections that work on the serial port. One initializes the port, one preformats the data to be sent, one sends the preformated data. In this version of the HMI program, I lowered the baud rate to 9600 to give me a better chance to see activity on the line with an old-fashioned RS-232 Line monitor and the MK I Eyeball. Communication - Format Serial Command.vlx Communication - Initialize Serial Port.vlx Communication - Send Serial Command Message.vlx
  3. To answer your quoting of the manual: 3: I have confirmed that the dipswitches are all set correctly for RS-232. 4: I do NOT have the PC connected to the USB port, I am communicating with the PLC over Ethernet for programming. 4: Also, the manual is wrong, when the PLC has configured COM1, the USB port WILL NOT respond to PC communication unless the PLC is in STOP mode. This was an earlier hiccup I had with the system, where I had accidentally deleted the "PLC Name" rung while clearing out unused code and could not communicate with the PLC for programming after that. (The warnings that kept showing up on the download windows had let me to believe that I needed to "burn" the download to keep the program in the PLC after power-cycling.) (The information of "The PLC needs to have a working battery installed to retain program data after shutdown." is at best a Note, not a Warning.") 5: As there is only one device being communicated with via serial, there is no need to add a second serial port. Finally, the receiving equipment has a built-in Serial Port monitor, as I stated in the original post, so I can clearly see that it is not a case of garbled strings being ignored, the problem is that there is NO TRANSMISSION of data from the PLC.
  4. I am attempting co connect a Unitronics V700 to a Keyence Vision system by serial cable, in order to send the "change to program X" command to the vision system when the PLC is instructed to change to a new cap style. I have a cable connected from Port 1 on the PLC (Which should be COM2, since activating COM1 shuts down the micro-USB port) to the Keyence's RS-232C port, I have confirmed thw wiring, baud rate, parity, etc. The command is "prepackaged" in a set of MI registers (so the "X" of program X can be adjusted before the command is sent) and I have a subroutine that uses the Protocol Send Function block to send the data. In theory, at least. In practice, I see no data show up on the Keyence's RS-232 monitor, which should show all traffic in both directions; it is as if the function doesn't activate when called. What am I doing wrong here? Do Function Blocks need to be scanned every cycle in order to complete, or do they start a "forked process" that handles the multi-scan function after being triggered once? Do they need to be "energized" for their whole fun time, or do they require only a one-cycle "trigger" to take off and complete their task?
  5. Ah, info mode can wipe the PLC FLASH memory? Thank you, this is just the info I need. Also, the popup text bubbles that show up on the download menu make it somewhat unclear about the purpose of burning to FLASH. Those cues were leading me to think I needed to burn to FLASH to keep the program after a power cycle. Appearantly I was misreading those cues.
  6. Yes, I thought of that as my post was awaiting moderator review. Unfortunately for me, the V700 stores a backup of the program in FLASH memory, so it automatically loads the program from there into RAM if the battery fails. It's odd, all the help files state that the COM1 port is disabled when the PLC is physically hooked up to a PC, so, in theory, this problem should not be happening. However, as Yogi Bera said, "In theory, there's no difference between theory and practice; in practice, there is."
  7. The situation is as follows. (It's a funny story from the outside.) I was trying to get a V700 HMI/PLC to communicate with another device through TCP commands, when I realized that both machines have RS-232 ports. "That will simplify things," I said, and I put in the function blocks to prep COM1 for the communications. I also removed the now superfluous rungs that set up the Ethernet. Little did I realize that COM1 was not Port 1, but the USB port, and I also failed to realize that the "Set PLC name" function block was in the ethernet rung I had deleted. Now I cannot reach the PLC through the ethernet at all, and I can only communicate with it by USB when the PLC is in the 'Pre-boot" stage (power the PLC up while pressing on the screen, then remove finger and press again to half the "countdown to O/S load.") In this Pre-boot mode, I can communicate with the PLC, but I cannot download a new ladder logic program to it, and if I let the O/S load, it locks out the USB port so I cannot communicate with it to download a new ladder logic program. Is there a way to remove the PLC's existing program so I can put a corrected program into the system?
  8. The suggestion to ping the PLC turned out to my the tap on the shoulder I needed. The subnet for the plant is XXX.16.1._ _ _ The PLC had its IP Address set to XXX.161.1.xxx One typo had been giving me all this grief. One. Lousy. Typo. Thank you so much for your time and assistance.
  9. I am trying to connect with Remote Access, and I am initializing the Card, and initializing Socket 1 to port 20256. I know that last part is a redundancy, but I feel to keep important numbers "out in the open." I have tried initializing the socket both as Master and as Slave, with no response either way. I spoke with our IT Manager, and he said he opened up the 20000 - 20999 block of ports for me.
  10. We are trying to connect to a Vision V700 unit by ethernet for remote access, and to confirm the ethernet is working before starting the program block where we will be sending commands to another device over ethernet. The model I am trying to connect to is as follows: Every time we try to connect over Ethernet, we get the following error message: I have checked the cable connections, confirmed that the PLC Name, IP address, and port number set for the PLC match those that the computer is looking for. I cave confirmed that the UnCmDrv1.dll driver is installed on my computer. its last log message, timestamped to match my most recent remote access attempt, shows the following: Trying to read the SB values over a USB remote lin does not help much, as many of the bits assigned to ethernet protocols and statuses are annotated (not relevant for V700). What am I doing wrong? Why won't an Ethernet-capable PLC connect to the company Ethernet network? Thank you in advance for your assistance.
  11. Thank you all for your help. I have been able to get the encoder to run the shift register in one direction, which turns out to be all I need, since I needed to change by plan and use ranges in the MB bank for the shift register, and the vector commands only allow 'shift left.'
  12. The items are NOT evenly spaced, these are small (38mm) beverage caps passing under a vision system for inspection, I was planning on using a shift register to track the 'reject flags' as the caps move down the belt, using a Double Word variable for the register, I can get the position to the closest half-inch, which should be sufficient for caps that are about an inch and a half across. As far as 'letting it keep incrementing' and snapshoting the value, this is for a production line, running three shifts 5-7 days a week. Sooner or later (most likely sooner) the encoder's High Speed Counter will roll over, and that will leave some elements 'past the end of time,' so to speak, their count value will never come up, and, if bad, they will not be ejected. I should point out that I have asked how many bad parts per 100 we are allowed to sent out; zero. Then I asked how many per 1,000; zero, how many per 10,000; zero. With this as the goal I am to work towards, I need to insure that even the POTENTIAL for an identified pad part to continue down the 'pass' line is eliminated.
  13. I have a project where we are using a belt and encoder to track items on a belt. There will be multiple items on the belt at once, and the current plan is to store the location and 'status' (good/bad part) in shift registers. The PLC is an Unitronics V700, and the EX-I/O module will be replaced with a Snap-On V200-18-E1B, when it arrives. The theory of operation is as follows: The product passes a photosensor, which adds an 'item here' flag to a shift register. When the register indicates a part is under the vision system, the 'item here' flag will send a 'trigger pulse' to the vision system to start the inspection. Once the vision system has completed the inspection, a 'scan complete' flag and a possible 'reject this part' flag will be added to their respective shift registers. When the bad part is at the reject station, the 'reject this part' flag, if present, will trigger the reject blowoff. The problem I am facing right now is how to convert the signals from the encoder (100 pulses per revolution, 2-bit incremental) into an accurate signal to trigger the shift register movement. I was intending to count X 'belt pulses' to be 'one inch' (one shift of the shift registers), however previous tests have shown it difficult to perform math on the MI register that holds the encoder's 'value' and have it stick; the encoder's value gets updated and overwrites the math adjustment. is it really this difficult to make an "every X pulses" pulse train built in VisiLogic.
  14. Thank you so much. Not to disparage Unitronics, but their website does not make it easy to cross-reference components in their PLC/HMI section. The tables of compatible modules are nice, but it would help if they included direct links to either the pertinent documents in the technical library, or to a catalog page that would give a little more detail on the particular module.
  15. What we're looking at is 16 digital inputs, 16 digital outputs. two of the inputs are for a rotary encoder, 24VDC all around.
  16. We are working on a project that will be using a Vision 700 unit as the PLC and HMI at the heard of the control scheme. However, we would prefer to NOT have a big bundle of discrete wires running from the backplane to the enclosure door. Is there some way to attach an expansion I/O unit to the Vision 700 or to an I/O unit mounted on the back of the V700 using a stock cable setup? Or should we be designing the enclosure so all the components are mounted to the door instead of to the backplane?
×
×
  • Create New...