Jump to content

Bryon Sol

Administrators
  • Posts

    142
  • Joined

  • Last visited

Everything posted by Bryon Sol

  1. Something that Mitsubishi programmers need to do on a regular basis is communicate with a device on a CC-Link network. This can be CC-Link classic, CC-Link IE Field, CC-Link IE Field Basic or CC-Link IE TSN. No matter which flavor of CC-Link is used the process is similar and consists of a few steps. This article is not intended to be a step-by-step how-to but instead to give an overview of the process. Step 1: Configure the network with the devices and their required data size(s). Step 2: Configure a set of Refresh Data to transfer the information from the CC-Link module (whether that's the built-in Ethernet port for CC-Link IE Field Basic, or an actual add-on module like RJ61BT11 or FX5-CCL-MS etc). Step 3: Understand the data and use it! I like to diagram this out as follows: STEP 1: - Configure the network For Step 1 - configuring the network, all of the configuration screens look similar, you drag and drop the devices onto your network and set station numbers. For Ethernet devices you need to set IP addresses as well. On the devices themselves you need to either parameterize them or configure their station information to match. Here's an example screenshot showing a VFD on a CC-Link network You simply drag the device onto the network and then in the upper portion of the window you configure the details for the station. For instance this is set for Version 1 of CC-Link and a single occupied station. STEP 2: Configure the Refresh Data This moves the data into the PLCs usable device memory. This will look something like the following: RX Devices are Remote Input bits and in the above picture we are transferring them into B bits in the PLC RY Devices are Remote Output bits and in the above picture we are transferring them into B bits in the PLC RWr Devices are Remote Input Words (Remote Word Read) and in the above picture we are transferring them into W words in the PLC RWw Devices are Remote Output Words (Remote Word Write) and in the above picture we are transferring them into W words in the PLC What this step does is make the devices on our CC-Link network accessible via PLC internal devices, in this case B bits and W words. B bits and W words were chosen because they are addressed in Hexadecimal just like RX, RY, RWr and RWw devices. You can see here RX0 through RX1F is getting mapped to B0 through B1F. Similarly RY0 through RY1F are being mapped to B100 through B11F. The RWr and RWw follow a similar pattern. The B bits and W words chosen are set by the programmer. STEP 3: Use the Data. In order to use the data we need to go to the manual for the device we are controlling and see what the manufacturer tells us. For example with a Mitsubishi VFD on CC-Link IE Field basic we get these two maps: The RX and RY devices look like this: The RWr and RWw can change but the most simple option is this: It's now up to you as a programmer. We can hard code devices for use. For instance since RY0 = B100 we can simply turn on B100 to turn on the Start Forward signal of the VFD, or we can create labels. For example here's a data structure for the RY devices showing the device that we've mapped. With data structures in place, labels created for our CC-Link devices and then our mapping complete we can have code that looks like this to turn on/off the VFD Hopefully this helps you conceptualize device mapping in Mitsubishi PLCs.
  2. Version 1.0.0

    6 downloads

    The attached PDF describes how the safety circuit works on Epson Robots. It shows some alternative diagrams to help explain how to use the safety of the robots. Proper safety wiring and configuration is the responsibility of the end-user and must be implemented correctly.
  3. Version 1.0.0

    11 downloads

    This uses a newer approach to connecting an FX5 CPU to the Epson robot via Modbus/TCP using Simple CPU Communications
  4. As of last week, November 30th, 2023 Mitsubishi released their own Function Block for doing this same thing. Search for document #: 3E26SJWH3ZZR-425423887-2504 IAI ROBO Cylinder Series MITSUBISHI ELECTRIC MELSEC iQ-F Series MODBUS/RTU Connection Quick Start Guide This is a well documented solution that performs Jogging, Homing and Positioning Table editing as well as commanding a move to the positions in the table. However, the solution provided here by Gibson has a few more features such as: Ensuring SIO is enabled Status monitoring Reading the position of the actuator However the moving in the Gibson libraries can go to any position without having to set the position in the table first. Both libraries are valuable and have their own strengths.
  5. Recently we had a situation where we needed to change a job file on a Cognex In-Sight camera from a UR Robot. At first we attempted to do it via Modbus/TCP, but were unable to do so. So we switched gears and used UR Script. In the UR Script we use Socket commands to connect to the Cognex camera and use Native Mode commands to perform the job change. To change a job in Cognex you need to: Connect on port 23 (Telnet) Provide username and password Take the camera offline Send the job change command Put the camera back online Disconnect from the camera There's more than can be done in terms of fool-proofing and error handling, but this script provides the needed functions to change your job. Here's the UR Script we created in order to make this work: # This script uses Sockets in the UR and Native Mode Commands # to change the job in a Cognex In-Sight Camera # First thing to do is open a Socket - this is a connection to the Cognex Camera # The default port for a Native Mode socket is port 23 - TELNET # Specify the IP address of the camera and port 23 # Name the Socket "CogCam" so that we can refer to the specific socket connection socket_open("192.168.3.94",23,"CogCam") #Open Camera UR connection , Port: 23 # The camera should respond with a welcome message and then ask for username # We do a read from the socket to clear this data # You could evaluate this response to ensure the port opened correctly # You could also add a timeout # socket_read_line(socket_name=’socket_0’, timeout=2) strOpenResponse=socket_read_line("CogCam") #get connection response # Now we need to log into the camera. The default username is "admin" # we also need to send Carriage Return and Line Feed characters, so we'll add those # using bytes with integer value of 13 and 10 respectively socket_send_string("admin","CogCam") #Login to Camera socket_send_byte(13,"CogCam") socket_send_byte(10,"CogCam") # Now we can read the response to the user name - it should now ask for password # you could evaluate the response, but here we're just clearing the socket # of incoming data # then we'll send an empty string - the default password for admin EmptySocketData=socket_read_line("CogCam") #Empties Queue socket_send_string("","CogCam") #Password To Camera socket_send_byte(13,"CogCam") socket_send_byte(10,"CogCam") # Now that we should be logged in, again empty the Socket # then take the camera offline with SO0 command EmptySocketData=socket_read_line("CogCam") #Empties Queue socket_send_string("SO0","CogCam") #Takes Camera Offline socket_send_byte(13,"CogCam") socket_send_byte(10,"CogCam") # We could parse the response, 0 = fail, 1=pass but we are # assuming it worked. # The advantage of a read is that the script won't send the next # command until we get a response to the previous command # Now we send LFJOBNAME.job to the camera to load the job we want # in this example, our job is 02.job Status1=socket_read_line("CogCam") socket_send_string("LF02.job","CogCam") #Loads New Job File socket_send_byte(13,"CogCam") socket_send_byte(10,"CogCam") # It may take several seconds for the job file to load # using the socket_read_line without a timeout means we wait for the camera # to respond to the request Status2=socket_read_line("CogCam") # Now that we have a response, we put the camera back online with SO1 command socket_send_string("SO1","CogCam") #Puts Camera Back Online socket_send_byte(13,"CogCam") socket_send_byte(10,"CogCam") # This isn't necessary, but we could check for a 0 or 1 response to see # if we are back online or not Status3=socket_read_line("CogCam") # Lastly we should close the socket socket_close("CogCam") JobChangeScript2.script
  6. I'm very excited to announce that with the update the GX Works3 version 1.095Z and firmware 1.290, Online Program Changes are now possible in SFC programming on the FX5U and FX5UC PLCs. We have had the ability to program SFC on the FX5U/FX5UC PLCs for a while now, however if you needed to do a program change it required you to stop the PLC and rewrite the entire program. With this new update you can use the standard Online Change capability to update your SFC code without having to stop the processor. This is a huge advancement and helps to dramatically reduce program development times.
  7. Using the built-in Modbus/TCP capabilities of the Epson robots we can connect a Mitsubishi GOT Quick program attached which works with the Epson robots. Notes: 1. This was created for an OLD GOT Simple so if you try to put it in a new one, change your Settings to GS21xx-WTBD-N in the project 2. This uses the default config for slave IO on the Epson side starting at Bit 512. 3. You then have to understand how Epson Maps internal bits 512 (512 is duplicated for inputs and outputs as you see above) to Modbus registers. We can then address higher Words if we want to send/receive data from Epson as values other than just bits. The GOT Project only has two screens, one that's looking at some RAW data as bits and words The other screen is only looking at the first couple of words in/out as they map to default functions so that you can quickly use buttons to start/stop programs, reset the robot, turn motors on/off etc. GS21_To_Epson_Modbus_Ex01.GTX
  8. Some updates to this post. Since the original post, Mitsubishi has updated the firmware on the FX5UJ and now you can do User Web Pages on the FX5UJ as well as the FX5U. Also Mitsubishi has now released the FX5S series. With the FX5S series you have reduced expandability in order to bring costs down. The base unit has Ethernet and mini-USB but no SD card and can be purchased in I/O from 30 to 60 points. It is non-expandable for IO but does offer some expansion via front connection and left side. If you add an FX5-SDCD module to the front of the FX5S, you can then use the User Web Page functionality to provide a simple web based user interface to interact with your PLC.
  9. Version 1.0.0

    13 downloads

    This file includes code examples and PDF walk through in how to set up communications from the iQ-F (FX5) Mitsubishi PLC to an Epson Robot using Modbus/TCP. This procedure uses Predefined Protocol Support function of the FX5U PLC.
  10. Okay, so here's where I admit that I was intimidated by servos for years in my early career. Why? Because they were expensive and I was afraid to get it wrong, plus there were so many options that I was overwhelmed. But in terms of Mitsubishi Servos it's actually pretty simple. You are either using an IO controlled servo, or a networked servo. So how do we know which is which? Starting with the amplifiers, let's break down an example part number: MR-J4-20A1-RJ The MR simply means it's a servo amplifier meant for general automation. The J4 is the series of amplifiers. The 20 means it's a 200 Watt amplifier. This is the power it can deliver to the servo motor. The A indicates the control type, in this case digital I/O control, we'll discuss this much more later. The 1 after the A indicates that this is a 100V amplifier, meaning the power to the amplifier is 100VAC (100-120 works). The RJ indicates that this amplifier has a Safe Torque Off functionality, earlier versions did not have this functionality and didn't have the RJ suffix. There's a little more to this than what's shown above but in general this is what we are looking at when it comes to picking an amplifier. They all start with MR, then a series (J4, JE, JN, J5, JET etc), then a power rating, a control type, a voltage modifier may or may not be present (1=100V, 4=400V, nothing = 200V), and finally other modifiers as necessary for special features. CONTROL TYPE The first thing I like to look at when picking an amplifier is actually the control type. You will find a few control types with Mitsubishi Servo Amps, basically there are two main categories with a couple of sub categories. Servo amplifiers are either digitally controlled (inputs and outputs) or network controlled. Here are the various Control Types you'll see in the Mitsubishi Line Up: A Type Amps (example MR-J4-20A1-RJ) These are Digital IO Control, this can be pulse and direction. Some have table mode where you program positions inside the drive and call them via digital IO and some have the ability to do Program Mode where a script can run in the drive. No matter which mode you use (pulse and direction, table or program) the drive is controlled by 24V digital IO signals wired to the front of the drive. B or BF Type Amps (example MR-J4-70B-RJ, MR-JE-200BF) These drives work on an SSCNET Fiber Optic Control Network. These get their control signals from a Motion Control Module connected to your PLC. All series of Mitsubishi PLCs have various cards that can control these drives, you can use an FX3, FX5 (iQ-F), L Series, Q Series or R Series (iQ-R) PLC with an appropriate motion card to drive these. Some of the advantages include the fact that Fiber Optic networks are not affected by electrical noise, they are very fast and the motion cards can do coordinated motion, so if you need to do 2-axis linear motion or 2-axis circular motion or even more complex motions like camming etc, these amplifiers can be controlled by a motion card in a coordinated fashion. The MR-JE series can be purchased as MR-JE-xxxB or MR-JE-xxxBF the F adds Safe Torque Off (STO) functionality to the drive. C Type Amps (example MR-JE-40C) These drives work on the CC-Link IE Field Basic network. This is a low cost option for point-to-point control. All of the FX5, L-Series, Q-Series and R-Series PLCs with built-in Ethernet can control the servos directly from this built-in Ethernet port (some older systems may not be able to do this, check for the CC-Link IE Field Basic marking on the front of the PLC). The big advantage here is cost. If you need to do simple point to point moves, or speed control, or torque control, these amps can do it without a motion card being needed. G Type Amps (example MR-JET-40G) These drives work on an Ethernet network and there are a few sub options. The straight G type are meant for Mitsubishi control and will work on CC-Link IE TSN networks for coordinated motion, but they can also function on CC-Link IE Field Basic for a low cost solution for point-to-point uses. The sub-type G-N1 are EtherCAT controlled drives. There are also GF type amps (MR-J4-70GF-RJ for example) that are ethernet based that can work as either CC-Link IE Field (not TSN) or CC-Link IE Field Basic. TM Type Amps (example MR-J4-40TM-EIP) These drives work on an Ethernet network and can be purchased as either ECT for EtherCAT, EIP for Ethernet/IP or PNT for PROFINET compatibility. You can get application notes and how-to guides from Mitsubishi which will show you how to use these drives with third party PLCs such as Beckhoff, Allen-Bradley and Siemens among others. Amplifier Series As of Spring 2023 here are the current families of Servo Amplifiers and general info about them: MR-JN Series These are only pulse and direction and are designed for simple applications. They are available in 100V and 200V systems with a variety of motors and output powers up to 400 Watts. MR-JE Series These are available as A, BF and C type control and are 200VAC up to 3kW. They have a wide variety of control methods and are a lower cost option with 17-bit encoder resolution for general servo applications. MR-J4 Series These were the top of the line servo series until the MR-J5 series came out. With 24VDC/48VDC controllers, 100VAC Single Phase up to 400VAC three phase options and from 10 Watt motors up to 55kW, this series provides options for motors and amplifiers for almost any application. And with A, B, GF and TM control options, almost any type of control is possible with this series. On top of this with 22-bit encoders on the motors precision was unsurpassed until the J5 series came out. MR-JET Series These are network only amplifiers working on G and G-N1 networks. Similar to the JE series being the lower cost alternative to the J4 series, the JET series is the lower cost alternative to the J5 series and is the step up from the JE series. With 200VAC and 400VAC options with power up to 3kW and 22-bit resolution on the encoders on the motors, this series represents a fantastic price/performance option. MR-J5 Series These are the top of the line amplifiers from Mitsubishi with A type and G type options allowing pulse train control or CC-Link IE Field TSN as well as EtherCAT with the G-N1 versions. The series is still expanding but current operates on 200VAC or 400VAC from 100 Watt output to 22kW. And with 26-bit resolution on the encoders the precision of control has reached new levels never seen before. So which one do I choose? For lower cost solutions, you are typically looking at pulse/direction systems. These are your A Type amplifiers. So stick with the MR-JN or MR-JE series, or even the MR-J4 or MR-J5 for higher performance. But understand that unless your control system can do multi-axis pulse and direction, most likely this is single actuator point-to-point motion only. For more control, step up to networked devices. For instance, with Mitsubishi PLCs with built-in CC-Link IE Field Basic you can get positional feedback, alarm info etc over the network. So going to an MR-JE-C, MR-J4-GF, MR-JET-G, or MR-J5-G allows more interaction, but still lower cost because you don't have a motion control card on your PLC. For the best control, add a motion card to match the network of your drive and either go the the B type amplifiers like the MR-JE-BF, or MR-J4-B series, or move up to CC-Link IE Field with the MR-J4-GF series. Or for top end applications move to CC-Link IE TSN and go with MR-JET-G or MR-J5-G series amplifiers. Mitsubishi also provides servo sizing tools to help you pick the right motor type (low inertia, mid inertia etc) and the right wattage for your loads. If you need any assistance picking or sizing your servo, don't hesitate to reach out to your sales rep for support!
  11. The iQ-F series PLC (FX5 series) is a major step forward from the previous generation FX3 and before PLCs. It has a significantly faster bus between modules. You are unable to simply connect previous FX2N and FX3U series right side modules to the FX5 (iQ-F) PLCs. If you have an FX5UC PLC you want to use a FX5-CNV-BUSC, and if you have an FX5U or FX5UJ or FX5S you want the FX5-CNV-BUS. These are the bus conversion modules. Anything after the module must be an FX3 series module and the connectable modules are listed below.
  12. There are a couple of reasons why you might not be able to write to the HMI over ethernet. 1. You have a fresh GOT with no program in it. When GOTs ship from the factory they have no BootOS and no Ethernet setup. You must always use USB or serial the first time to set them up. 2. You don't have the correct IP settings on your PC, make sure your PC's IP address and subnet match that of the HMI. 3. The HMI was set up to connect to a serial only device and therefore has deactivated the Ethernet port! This one is a little strange, but if you have a 3rd party (non-Mitsubishi) device connected via Serial port to the HMI and you haven't configured the Ethernet port to do anything, then it will be dormant. To activate it, go to I/F Communication Settings and set the Ethernet Download settings.
  13. Another PLC that has been asked about a few times recently is the venerable FX series, such as FX-32MR or FX-24MR etc. The FX series use the F2-40BL battery just like the FX2N does.
  14. Cognex also provides a guide on doing this as well. https://www.cognex.com/support/downloads/ns/1/11/91/HTTP tiled mode.pdf
  15. Version 1.0.0

    0 downloads

    I was recently asked if it was possible to show the last 4 images on a VisionView. The solution I came up with was to use the LatchImage and ScaleImage functions in Spreadsheet in order to overlay images on top of the main image for display purposes. While this has it's limitations, it provided the customer what they needed in their application. Overall it looks like this: Step 1: Create a Count function to keep a rolling count of images: Step 2: Add Latching Logic (4x), notice this points to our Count cell. Step 3: Add LatchImage Functions (4x) Step 4: Add ScaleImage Functions (4x) Step 5: Add Text Overlays to indicate which image is which: Step 6: Link to the checkbox for turning on/off this display.
  16. Mitsubishi Electric Factory Automation group has now released GT Works3, their GOT/HMI design package as Windows 11 compliant. If you have an account with Mitsubishi, you can always look at the Compatibility Matrix here: https://us.mitsubishielectric.com/fa/en/account/my-software-portal/windows-compatibility-matrix/ As of today (June 30, 2022) here is the current compatibility Matrix.
  17. Version 1.0.0

    13 downloads

    Attached is a PDF that explains how to set up FileZilla FTP Server on a PC so that a Cognex Camera can use the WriteFTP Function to store data over the network. Screenshots show how to use EasyBuilder to set up the transfer on the Cognex Camera. *** When running an FTP server on Port 21, it may conflict with saving jobs and connecting to your Cognex Camera. You will need to disable the FTP Server at times if you want to use In-Sight Explorer and edit jobs on your camera ***
  18. As of 5/16/2022 here is the Windows compatibility Matrix from Mitsubishi:
  19. Use the following chart to determine the correct battery for your robot arm and controller. If you have any questions, please reach out to your Gibson rep for clarification. Robotarm Battery Part # Quantity Controller Battery Part # Quantity RV-M1 / / DUM1 A6BAT RBT-00467 1pce RV-M2 / / DUM2 A6BAT 1pce RV-E2 A6BAT RBT-00467 5pcs CR-E116 A6BAT 1pce RV-E3J A6BAT 4pcs CR-E116 A6BAT 1pce RV-E4NM A6BAT 5pcs CR-E356 A6BAT 1pce RV-E5NJM A6BAT 4pcs CR-E356 A6BAT 1pce RV-E3NLM A6BAT 5pcs CR-E356 A6BAT 1pce RP-1AH A6BAT 3pcs CR1-571 or CR2-532 ER6BAT RBT-00463 1pce RP-3AH A6BAT 3pcs CR1-571 or CR2-532 ER6BAT 1pce RP-5AH A6BAT 3pcs CR1-571 or CR2-532 ER6BAT 1pce RV-1A A6BAT 5pcs CR1-571 ER6BAT 1pce RV-2AJ A6BAT 5pcs CR1-571 ER6BAT 1pce RV-4A A6BAT 5pcs CR2A-572 or CR2-532 ER6BAT 1pce RV-5AJ A6BAT 4pcs CR2A-572 or CR2-532 ER6BAT 1pce RV-3AL A6BAT 5pcs CR2A-572 or CR2-532 ER6BAT 1pce RH-5AH45 A6BAT 4pcs CR2A-572 ER6BAT 1pce RH-5AH55 A6BAT 4pcs CR2A-572 ER6BAT 1pce RV-2A A6BAT 5pcs CR1-571 ER6BAT 1pce RV-3AJ A6BAT 4pcs CR1-571 ER6BAT 1pce RH-10AH55 A6BAT 4pcs CR2A-572 ER6BAT 1pce RH-10AH85 A6BAT 4pcs CR2A-572 ER6BAT 1pce RH-6SH A6BAT 5pcs CR2B-574 ER6BAT 1pce RH-12SH85 A6BAT 5pcs CR2B-574 ER6BAT 1pce RV-6S A6BAT 5pcs CR2B-574 ER6BAT 1pce RV-6SL A6BAT 5pcs CR2B-574 ER6BAT 1pce RV-12S A6BAT 5pcs CR3-535M ER6BAT 1pce RV-12SL A6BAT 5pcs CR3-535M ER6BAT 1pce RV-3SB A6BAT 5pcs CR2B-574 ER6BAT 1pce RV-3SJB A6BAT 5pcs CR2B-574 ER6BAT 1pce RV-3SD/Q A6BAT 5pcs CR1D/Q Q6BAT RBT-00568 1pce RV-6SD/Q A6BAT 5pcs CR2D/Q Q6BAT 1pce RV-12SD/Q A6BAT 5pcs CR2D/Q Q6BAT 1pce RV-2SD/2SDB/2SQ ER6BAT RBT-00463 4pcs CR3D/Q Q6BAT 1pce RV-2F ER6BAT 4pcs CR750_751 Q6BAT 1pce RV-4F ER6BAT 3pcs CR750_751 Q6BAT 1pce RV-7F ER6BAT 3pcs CR750_751 Q6BAT 1pce RV-20F ER6BAT 3pcs CR750_751 Q6BAT 1pce RH-3FH ER6BAT 3pcs CR750_751 Q6BAT 1pce RH-6FH ER6BAT 3pcs CR750_751 Q6BAT 1pce RH-12FH ER6BAT 3pcs CR750_751 Q6BAT 1pce RH-20FH ER6BAT 3pcs CR750_751 Q6BAT 1pce RV-2FR MR-BAT6V1 RBT-01456 4pcs RV-4FR MR-BAT6V1 4pcs RV-7FR MR-BAT6V1 4pcs RV-13FR MR-BAT6V1 4pcs
  20. Note: As of 5/5/2022 GX Works3 Version 1.085P, GX Works3 is now compatible with Windows 11.
  21. Mitsubishi has released version 1.085P with support for Windows 11. As of today (May 5, 2022) you should be able to log into the Software Portal at http://us.mitsubishielectric.com/fa/en and download version 1.085P. If you haven't registered your software, you will need to register it first. If it's already registered and more than a year old, reach out to Gibson Engineering to purchase a Software Maintenance Agreement which will give you 1 year of updates. *GX Works3 is used to program all iQ-F and iQ-R series CPUs such as the FX5U, FX5UC, FX5UJ, R04CPU etc processors. Compatibility for Windows 11 and older processors has not been announced yet.
  22. DEVICES AND LABELS A lot of questions come up about Mitsubishi PLC data types. This is more common now with GX Works3 and the FX5 (iQ-F) and R series (iQ-R) PLCs. First, it's important to understand the memory in Mitsubishi PLCs. There are only 16-bit registers and single bits. There are no other storage types for data. There are no 8-bit storage areas, or 32-bit or 64-bit. So if we start with storage areas in the PLC that are addressable (we call these DEVICES) they are as follows: There are some other devices not covered here such as R registers and F annunciator bits, but for the most part this covers the most commonly used devices and their addressing whether it's decimal, octal or hexadecimal. As you can see there's nothing about data types here, this is purely memory devices (aka memory locations). What we use them for and how we use them is a separate thing. For instance I could store a 16-bit integer in data register D0, or I could store a 32-Bit floating point (real) value in D0. However, if I point a 32-bit floating point value at D0 it will consume both D0 and D1 registers (two consecutive 16-bit registers) to contain that value. So as a Mitsubishi programmer it is up to us to ensure we don't reuse the same register for multiple things. These DEVICES have been around for many generations of Mitsubishi PLCs. And prior to GX Works2 everything was programmed at the Device level. There was no concept of Labels. We had comments to be able to know what we were using various DEVICES for, but you had to enter the DEVICE when programming. However, with GX Works2 Mitsubishi released the ability to use Labels. In GX Works2 this worked by setting aside a portion of the normal Device Memory to be used for label memory area when you didn't specifically link a label to a device. Or you could specify which register you wanted to use. In the example below we have two labels one with a Device assigned to it and one without. When the program compiles it will choose a data register to use. What register an unassigned label uses can move around. But it will like in a range defined by the following table (which is user manageable): When GX Works3 came along and the new iQ-F and iQ-R hardware, a new memory area specifically for Labels was added to the processors so that we weren't using standard device memory for unassigned labels. So the above table does not exist in GX Works3. But what about Data Types? DATA TYPES AND FUNCTIONS In GX Works2 and earlier software, because we were doing things mostly at the device level the classic Mitsubishi data-type specific functions were used by most programmers. For instance, on the iQ (Q series) PLCs we would have the following math functions: + for 16-bit addition D+ for 32-bit addition E+ for 32-bit Floating Point addition In the example below we still use devices for the input and output arguments. But when we switch to Labels we now need to make sure our Data Type of our labels matches the expected data type of the function: For this to work the labels would have to have the following data types: But it was really in Function Block Diagram programming (aka Structured Ladder) where the data type checks started to come into play and wouldn't let you get away with the wrong data type. This error occurs because we accidentally set the data type as Word instead of Float. So what data types do we have, and what values can we use with them, and what functions match those types? Below is a screenshot of the data types you can pick from as standard (simple) data types on an FX5 (iQ-F) PLC These can contain data as follows: But now in FBD programming we need to use the correct function types to work with these Data Types. For instance INC increments a Word, but INC_U increments and Unsigned Word. But it gets a little confusing sometimes when converting data types as there are an incredible number of data type conversion instructions: Some of these are easy to understand as when you start to enter them they are very specific: For instance DINT2FLT converts 32-bit SIGNED (aka Double Word [Signed]) to float. However you have to get your data types correct when using the IEEE 61131 compliant function blocks. And this is where things can get tricky. For instance the WORD_TO_DINT function requires a WORD (aka Word Unsigned) input and converts this to a DINT ( Dword Signed) output. So WORD and DWORD are for UN-signed values and INT and DINT are for SIGNED values. But you can't mix and match registers in with these functions because D100 has no data type. So how do you know if a function is a classic Mitsubishi instruction or a new IEEE version? Well you can tell by looking at where it exists in the Element selection window: Functions up top under BASIC Instructions are classic Mitubishi instructions that have been around prior to pure label based programming and work at either register level OR Label level. Instructions further down under "Standard Function/Function Block" area in Element Selection are IEEE compliant versions and require the proper data type or they simply won't compile. If you need any assistance with this, reach out to your local Mitsubishi Distributor and they will be glad to assist.
  23. Have you ever received one of the following compile errors in GX Works3? a) A device which is latched has been assigned for VAR_GLOBAL class. Please change to VAR_GLOBAL_RETAIN class. or b) A device which is not latched has been assigned for VAR_GLOABL_RETAIN class. Please assign a device which is latched. Well what do these mean? Simply put, you created a label and told the compiler that you wanted it retained (VAR_GLOBAL_RETAIN class), but assigned it a register in the non-retained area. Or vice versa, you created a label and told the compiler you didn't want it retained (VAR_GLOBAL class) but assigned it a register in the retained area. For example neither of these work: When you look at the parameters for this PLC any register above D200 is in Latch Area 1 So if you try to set any Global label as retained under D200 you will get an error, and if I try to set any Global label as simply VAR_GLOBAL at D200 or above you will also get an error. This is solvable simply by moving the assigned register, or switching from VAR_GLOBAL to VAR_GLOBAL_RETAIN (or vice versa). But what about in the following scenario? I have both non-retained and retained values inside of a Structured Data Type (SDT). If you absolutely need to do something like this, there's one option available to you. It's a setting in the Convert options of GX Works3. "Check the Consistency of Global Label". The default is YES, but if we set it to NO then it stops checking VAR_GLOBAL vs VAR_GLOBAL_RETAIN and the registers Upon making this change you can now compile the program and point labels to any register/bit without experiencing the error. However, the danger becomes that you may not have placed something in the correct memory area to do what you need it to do. Please use this setting with caution.
  24. A common issue people have with Cognex In-Sight cameras is not getting the data back at the end of an inspection. It might seem like you have it all set up correctly in either EasyBuilder Communications or Spreadsheet with FormatOutputBuffer etc, but you just aren't getting any data! If you are able to trigger your camera, and interact with it in other ways, but the data isn't coming back, this is most likely because you haven't told the camera to send the data! On V5.x.x. firmware, the input/output changed a bit for the Cognex cameras. If you are using Ethernet/IP, Profinet, Modbus/TCP or CC-Link IE Field Network Basic and you want the data at the end of the inspection there are two different ways to go about this: Turn on the "Enable User Data Bypass" option. This is by far the easiest option. What it does in essence is tell the camera not to wait for the PLC to request the data, but to just send it automatically at the end of every inspection. This option is essentially in the same place no matter what protocol you are using, but does vary slightly. Go to Sensor->Network Settings Under the Industrial Ethernet Settings, make sure you've selected the correct protocol and then click Settings and check off "Enable User Data Bypass" Or...Request Data with each inspection. Depending on your PLC this is done via the Set User Data Ack tag/bit From the In-Sight Explorer Help File for Ethernt/IP: If the Enable User Data Bypass is NOT enabled (unchecked which is the default state) in the Network Setting Dialog for the camera: i. Set the User Data tag, SetUserData bit is a named tag, for this example it would be InSight_Top:O.Control.SetUserData. ii. Clear the User Data tag above once you receive the User Data Ack bit. SetUserDataAck bit is a named tag, for this example it would be InSight_Top:I.Status. SetUserDataAck. The Set User Data Bypass flag is available in the following protocols: Mitsubishi CC-Link IE Field Network Basic: Profinet Modbus/TCP
  25. The new Vision Sensor Monitor Utility makes it possible to view images from the Cognex In-Sight cameras on your GT25 or GT27 HMI. Here are some notes on the capabilities: This utility on the GOT uses the WebHMI functionality of the Cognex In-Sight cameras. So only cameras that have this ability are compatible. This means the older 5100, 5400, 5600, 1100, 1400, 7000, 7200 and 7400 series cameras will not work as they only go up to firmware 4.10.X and do not support WebHMI. All newer models (5700, 7500, 7600, 7800, 7900, 8000, 9000) with firmware 5.8.0 or after should work. This utility does NOT support CustomView functionality, or graphics generated in spreadsheet. This utility DOES support EasyView. The utility launches it's own set of screens. You do not design your own screens, you simply launch the utility. Like any other utility screen, you are now not in your standard HMI application, so while monitoring the camera, you have no ability to interact with your PLC etc. You have to leave the utility to go back to machine controls. This was tested on a In-Sight IS7802M with firmwares 6.1.3 and 6.2.1 - both worked fine. There was previously a limitation that the utility only worked on cameras up to V5.8.0 Firmware, the utility has been updated and as of the writing of this it now works with all firmware from 5.8.0 to 6.2.1. You will need GT Designer 1.250 or later for this to work. I used 1.265B. Steps are basically as follows: Update the Core OS of your GT25/GT27. This requires an SD card. Write the CoreOS to the SD card from Communication->Write to Memory Card Choose the CoreOS (mine was version AB) Put the SD card in the HMI and boot the HMI - follow the prompts to update the CoreOS In your HMI Project in GT Designer3 go to Project->Application Selection and check off Vision Sensor Monitor[01.42.000] to add the utility to your project. Add a button to one of your screens to gain access to the utility. Make it a Special Function switch and set the Switch Action to "Vision Sensor Monitor" Make sure you enable WebHMI in your Cognex Camera. I did not test HTTPS only HTTP but HTTP worked flawlessly. Write your project to your GOT and you should be all set. One final note. While In-Sight Explorer is connected to the camera, you will not be able to use the online/offline, read/save etc functionality in the Vision Sensor Monitor utility. Make sure you disconnect In-Sight Explorer from the camera so that the GOT has control.
×
×
  • Create New...