Modular-X

One of the very special services SANXO offers is to evaluate possible optical solutions or improvements in any type of target process. Under the assessment are, first of all, the feasibility of a machine vision solution, then the performance and the costs of implementation. This initial evaluation we conduct without charge.

SKU: Modular-X Category:

Modular-X - Description

Modular-X is a versatile industrial image processing software, providing effective solution for the optical Quality Control of your products. The well-structured menu system, the wide range of tools and the looping statements of Modular-X all help the user to create an effective and rapid application. With this software even a complex problem can easily be solved. Modular-X uses the LabVIEW Vision Development Module functions of National Instruments. In case you need customised solution, the open interface of Modular-X gives the opportunity to run custom LabVIEW VIs by which the user can develop individual method for processing the measurement data and they can implement more complex procedures. The program supports parallel image processing, so several cameras can be present in the optical measurement system at the same time and there are varied ways of their synchronisation. Modular-X supports the communication standards those are most frequently used in industrial applications. In case you have special requirements, we can surely provide you the solutions in short term.

Modular-X software package

Modular-X software selection consists of three elements:

  1. Editor, the application developing and designing environment.
  2. Executor, executes the application developed in the Editor.
  3. Server, enables server-client model with custom user interface through TCP/IP connection.

Modules

  • Image acquisition: supports IDS uEye, SICK Ranger 3D, CURRERA-R, USB, Firewire, GigE and Cameralink cameras. It is also possible to simulate image acquisition by loading images from a data storage.
  • Image preprocessing: bring out and emphasise the essential information in the image with filtering and edge enhancement algorithms.
  • Programming tools: organise While and For loops and If, Else and Else If conditional statements to build advanced projects.
  • Locating functions: various edge, object and pattern detection algorithms and other miscellaneous tools (coordinate system, create ROI).
  • Measurement module: various measurement steps (intensity histograms, pixel counts etc.) and geometric functions (fitting circles, lines and ellipses, intersections, distances, angles etc.).
  • Identification module: read 1D barcodes and 2D datamatrices and recognise text with the OCR tool.
  • I/O module: support for NI Digital I/O Devices and Serial port communication.
  • Additional tools: miscellaneous step for varying functionality (Math, Delay, Data and Image logging, Logical calculator, Custom VI's from LabVIEW, String builder, Calibration methods etc.).

Modular-X - Details

Programming tools

  • While loop
  • For loop
  • If, Else and Else If conditional statements

The Programming Tools available in Modular-X allow the construction of advanced and elaborate machine vision projects with minimal to none programming knowledge required.

Acquire Images

Modular-X supports IDS uEye, SICK Ranger 3D, Ximea CURRERA-R, and all the National Instruments N-IMAQdx compatible USB, FireWire, GigE and Cameralink cameras. Upon request we can easily implement any other type of that National Instruments Vision Acquisition module supports. The cameras can be triggered by a software or by an external sign. The Simulate step uses the images or image sequences loaded from the storage device for inspection, therefore by using images acquired from the cameras of the production line, programmers have the ability to develop a better solution to a problem without disturbing the process of production.

Image Enhancement

Improve the quality of the images and extract the essential data from the image; eliminate noise and other unwanted information in the image. Modular-X offers various color, grayscale and binary filters for these tasks.

Grayscale processing:

  • Smoothing and blur tools
  • Highlight Details, convolution
  • Gray Morphology
  • Lookup Tables
  • Edge enhancement (Laplacian, Prewitt, Sobel etc.)
  • Operations between different images
  • Transformations

    Binarisation:

    • Grayscale intensity threshold
    • Color threshold

    Binary image processing:

    • Basic and Advanced Morphology
    • Particle Filters

    Locate Features

    Modular-X offers a broad selection of various locating features such as edge, object and pattern detection algorithms, and other miscellaneous tools like coordinate systems and ROI creators.

    Edge detection:

    • Detect edges in a line
    • Detect straight edges
    • Detect circular edges

    Object and pattern detection:

    • Match Pattern(s)
    • Geometric Matching
    • Golden Matching
    • Detect Objects
    • Match Color Pattern

    The pattern detection and matching functions are template-based algorithms. Detect Object, on the other hand, is a tool to locate homogenous particles and objects.

    Misc. tools:

    • Coordinate System
    • Create ROI

    The Coordinate System function can used to build a reference system into the image to counter positional changes. Create ROI enables general Regions of Interest to be used in, for example, multiple steps.

    Measure Features

    • Count Pixels
    • Intensity
    • Gauge
    • Geometry

    Measure Features palette offers specialised measuring tools. Count Pixels and Intensity functions can be utilised for general statistical output whereas Gauge and Geometry are handy in distance, size, angle and shape fit measurements.

    Identify Parts

    • Read 1D Barcode
    • Read 2D Data Matrix
    • OCR

    The identification functions allow various automatic code and text reading scenarios in the images.

    Modular-X supports the following barcode types:

    • Codabar
    • Code 39
    • Code 93
    • Code 128
    • EAN 8
    • EAN 13
    • Interleaved 2 of 5
    • MSI
    • UPCA
    • Phamracode
    • RSS Limited

    Modular-X supports the following datamatrix types:

    • ECC 000
    • ECC 050
    • ECC 080
    • ECC 100
    • ECC 140
    • ECC 200

    OCR:

    Effective template-based character recognition module offers automatic text reading. The templates/patterns are trained and stored into ".abc"-files with a specialised OCR Trainer module.

    Communications

    • Serial I/O
    • Digital I/O
    • User Input

    Modular-X Editor and Executor (by default) support the standard RS232 serial port communication and Digital I/O communication through National Instruments DIO Devices. Additional I/O interfaces can be organised through custom LabVIEW VI modules. The User Input function enables basic pop-up style interactivity with the operator.

    Additional tools

    • Set Variable
    • Session Status
    • Wait
    • Calibrate Image
    • Run VI
    • Math
    • Logical Calculator
    • Array Operator
    • String Builder
    • Image Logging
    • Data Logging
    • Comment

    The Additional Tools palette offers miscenalleous utilities such as organising global variables, custom mathematical operations, delay, calibrations, custom VI inserts, combined logical calculations, session status indicator configuration, array handling, string building and various logging features.

    Executor

    The Executor is an independent software intented to run in practice the project files created in the Editor. Where the Editor is built to make the application designing and creating as easy as possible, the Executor is built for maximum application runtime performance and memory usage.

    Server

    The Modular-X Server environment offers even more customisable machine vision integration solutions in the form of client-servel model. In a way, the Server application is an executor that can be communicated with via TCP/IP connections. This allows, for example, running the machine vision application externally in a server as a subsystem for a bigger automation system and then communicating with the centralised system.

    Modular-X - Download

    Legal Information

    Modular-X uses the National Instruments LabVIEW Runtime and Vision Runtime environments. The same regulations and limitations apply to the use of Modular-X as the use of LabVIEW. Read the Legal Information first.

    Scroll down for info on the Modular-X Digital IO plugin.

    Modular-X Installation Guide

    The link above you can download the Modular-X Version PC. After filling the registration form you will recieve a download link to your registered mail address. In case you do not have NI Vision Runtime 2013 licence, please download NI Vision Development Module and install it. During installation in the User Information step tick "Install this product for evaluation".

    Modular-X Installation:
    1. Unzip the downloaded file.
    2. Run setup.exe. On Windows Vista and Windows 7 use "Run as Administrator" option.
    3. The installer automatically launch the Modular-X after installation in order to finish the install process.
    4. Restart your computer.
    5. Run Modular-X.exe.

    Modular-X Uninstallation:
    Control Panel -> Programs and Features -> Remove Modular-X and National Instruments components and modules.

    Notes/Troubleshoot
    If you do not have LabVIEW Runtime license then in the last step of installation please do not tick the radio button: ('Some of the installed products require activation. Activate these products now') If the activation window appeared just close it by pressing on Cancel button.

    Note: If you have an unlicenced version of National Instruments Vision Runtime a dialog window will appear as you select the first machine vision function. This window popups at the background and locks the interaction with the software as long as it will be closed. Tick 'Do not show this again' and click on 'Launch Vision'.

    Using Modular-X with IDS uEye cameras

    In case you would like to use IDS uEye cameras with Modular-X, please install the uEye driver you need from the Modular-X software.

    Modular-X Extra Plugin Installation Guide

    The functionality of Modular-X can be extended by the following plugin. If you have any further questions or if you need a special plugin please contact us at: support@sanxo.eu and send your suggestion.

    Available free to download Plugin:

    Modular-X Digital IO Plugin: Supports the National Instruments DIO devices.

    Installation:

    Unzip the downloaded file.
    Run setup.exe.
    Restart your computer.

    Uninstallation/Remove:

    The installed plugin can be removed in Control Panel -> Program and Features.

    The additional National Instruments can also be removed this way.

    Notes/Troubleshoot:

    Digital IO Plugin works only with licenced Modular-X PC version.

    Modular-X - For SW developers

    Modular-X TCP/IP Server-Client architecture

    By using the Modular-X TCP/IP Server-Client solution the user gets freedom for developing wide variety of vision systems. The TCP/IP standard communication interface gives plenty of opportunities, it gives ability of running the User Interface on different computer using different Operation System.

    We recommend to use Modular-X Server when:

    • You need special customised User Interface
    • Your Vision System is part of a bigger automation system
    • You need to run the User Interface on another computer
    • You need to change your vision application on the fly (e.g product change)
    • You combine different systems into one computer and the result of the Image Analysis required prompt for the other system

    Bigger systems like production line systems require controlling your system via TCP/IP, so we provide the Modular-X with server-client architecture. Using the Modular-X Server functions the user can remotely load/run/stop different projects, different measurements. This means in case of sudden product changes, you can alter the correct program related to the current product. (See Fig. 1.)

    Fig. 1.: Camera Server-Client

    Modular-X software selection consists of three elements:

    1. Editor, the application developing and designing environment.
    2. Executor, executes the application developed in the Editor.
    3. Server, enables server-client model with custom user interface through TCP/IP connection.

    Server

    The Modular-X Server is the program which loads the project, runs the inspection and sends the result to the Client or communicates with PLC's via Digital Input/Output port. The application is developed in the Modular-X Editor then user runs the application file (*.mx) using the Modular-X Executor or runs it using the Modular-X Server controlled via the Client custom made software. The Modular-X Server has a small User Interface with an indicator displaying its process status (See Fig. 2.)

    Fig. 2.: Server

    Client

    The Client program controls the server (load specified project, run, stop, cleanup, get measurement results, etc.) via TCP/IP connection. SANXO provides you source code of the Client program for different development environments (LabVIEW, C#, Visual C, Java, etc). Therefore the user have the freedom to create a customised and unique User Interface using the template source codes. SANXO provides standard User Interface solution as the Modular-X Executor. Also all the Client template programs are fully tested. If you need further assistant in the development of your own User Interface, write email to support@sanxo.eu email address.

    Fig. 3.: Basic Client-Localhost settings

    Localhost approach

    The Server and the Client can run on the same computer, this way you can basically create your own user interface, for your applications, and add additional extra features (See Fig. 4.). This way it is possible to automatise product changes, create statistics, save measurements data to database, etc.

    Fig. 4.: Localhost approach with DIO module

    Licence

    The Modular-X Server application requires licence for Modular-X and National Instruments Vision RT. Running the Client application requires no additional licence.

    Modular-X - Examples

    Essential features of Modular-X

    A quick look over the main features of the Modular-X software.

    How To Build Your First Application

    An introduction to building a vision application with Modular-X. In this example, Geometric Matching function, for one, is used to track objects on a table.

    Connector inspection

    Download project file
    Download images

    This project demonstrates quality control of electrical connectors. It shows the use of Detect Objects, Match Pattern and Intensity measurement functions. These tools enable one way to check solders for burns or contaminations. A step by step tutorial video is available!

    Through-hole inspection

    Download project file
    Download images

    In this example, simple ways to check a soldering of through-hole mounted devices is shown. Functions/steps like Array Operator, Detect Objects and Count Pixels are used and, in addition, looping is demonstrated in the step by step tutorial video.

    SMD inspection

    Download project file
    Download images

    In this example, SMD (Surface-mount device) components are under inspection. SMD capacitors are detected and the solder volume on the contacts is analysed. The example demonstrates for example the use of Morphology and Geometric Matching functions in the step by step tutorial video.

    OCR (Optical Character Recognition)

    Download project file

    This example demonstrates a basic case of Optical Character Recognition. The OCR function is used for finding character objects and identifying them by matching them to definitions saved into an ".abc" character set file.

    Change detection and vehicle tracking

    Download project script file
    For the dataset and its usage rights/conditions please refer to changedetection.net

    Vehicles in traffic are tracked in a change detection application created in a flash with the available tools in Modular-X.

    EURO coin diameter

    Download project file

    Detect Circular Edges is utilised to measure the dimensions of a one EURO coin.

    IC pin count

    Download project file

    The pins of a chip are counted using a built reference Coordinate System and Detect Objects function.

    Modular-X - Basic Features

    Assessment of a possible machine vision application

    One of the very special services SANXO offers is to evaluate possible optical solutions or improvements in any type of target process. Under the assessment are, first of all, the feasibility of a machine vision solution, then the performance and the costs of implementation. This initial evaluation we conduct without charge.

    A good way to get started is to simply provide us with a short description of the problem or the goal together with a couple of pictures of the target and the location.

    The inquiries can be sent to info@sanxo.eu

    Consulting for creating Modular-X powered vision systems

    System integrators or even manufacturers themselves working on Modular-X based applications may reach out to our machine vision experts, who have years of experience in designing Modular-X systems. We offer to cover not only the software but also the hardware and mechanics design to build a whole operational system.

    Custom features

    Modular-X holds great flexibility and thus it is possible to implement tailored functionality into the software. Such features may consist of, for example, custom-made vision functions or a custom-made user interface. Certain types of customisations are realiseable in a very short time but any kind of ideas can be discussed and considered.

    Should you find yourself in need of customisation, contact info@sanxo.eu

    Support

    E-mail: support@sanxo.eu

    Skype: modular-x
    Modular-X manual download
    Modular-X FAQ download
    Modular-X Tips download

    FAQ

    How should I start my Modular-X program?

    If you follow the image menu below logically from left to right, you'll easily find the necessary functions.

    First of all, you'll need an image. Use one of the Acquire Image functions. First time preferably use the Simulate function to simply load an image from your HDD. Under Image Enhancement menu you'll find useful functions, with those you can tune your image to highlight features of details or contrary, hide those.

    Note: As a general rule, you can achieve better results if you select proper light source and optics than tuning the image with functions. The next step of your image analyzing approach can be found under the Locate Features menu. Usually the object and its position in the image should be set ready for inspection. There are several ways of finding the important parts on your image (edge locators, detect object, match pattern - one template, match patterns - many templates, golden matching, geometric matching, ect.). It is very useful to attach a coordinate system to a found object. The next step is usually the measurement itself. Those functions can be found under Measure Features and/or Identify parts. Relatively often the user just requires some simple results (passed or failed), in this case use the Additional Tools /Logical Calculator. For better understanding of the functions, please find examples on our homepage.

    I loaded a project, tried to add a function into the session or opened the OCR editor but nothing happens and the Modular-X window appears to be frozen.

    This is most often caused by using an evaluation version of the National Instruments Vision module (either Runtime engine or the Development Module). This is normal if you are using the trial version of Modular-X and haven't purchased the NI Vision licenses yet either. Check if a new window titled "Vision" appeared behind the Modular-X window and if so, click "Evaluate". See the image below. If no such window is found, the 30-day evaluation period might have expired and thus to keep using the software, a NI Vision Runtime license has to be acquired.

    I'm running a loop but I cannot follow what's going on real-time; why no images are displayed?

    By default, in a loop, no images are displayed while running. If images are wished to be shown, a step can be marked to display the current image at that point by right clicking on the step and checking "Display Result Image". A small display icon will appear next to the step in the session tree. Multiple steps can be marked but while running only the image from the current marked point will be displayed at a time.

    Why cannot I start the Modular-X Executor?

    A valid license file is not found. Modular-X Executor program is disabled in the trial version of Modular-X. If you have purchased Modular-X, contact SANXO support to resolve the issue.

     

    I have a demo version and I would like to buy the full version. What is the process?

    First, you need to start the demo version of Modular-X. When Modular-X is started, click on the Help menu / About. This will open the following window.

    Now you need to click on the BUY NOW label, and copy the appearing ID. Then you need to send this ID to us: info@sanxo.eu. Information about the current pricing of Modular-X should be found on our webpage: https://www.sanxo.eu/modular-x/prices. After purchasing Modular-X, we send you a certificate of NI VISION RT license and a certificate of Modular-X license. Then we activate both licenses by sending license files to you.

     

    Where can I check the current version of Modular-X at my computer and if it is up-to-date?

    If you run Modular-X, the version number can be found at the top left corner.

    Or by clicking on the Help menu About.

    Where is the origo situated in the image coordinate system?

    Often in machine vision software—and in Modular-X respectfully—the so called indirect coordinate system is used in which the origo is located in the top left corner of the image.

     

    I can't find a function

    Ideally you know the name of the function you are looking for and which Inspection Steps Palette contains it. If you only know the name of the function, then you can search in the 'How to' document, or simply click on the Session Tree with the right mouse button and look for it.

    If you don't know the name of the function, or you know broadly how it functions, then check the 'How to' document. If you still can't find the necessary function, send us an e-mail (support@sanxo.eu) about it, and we will happily help you out.

    If there is no such function in Modular-X you are looking for then please use the open LabVIEW interface of Modular-X. With the open interface you can add your own module to Modular-X. Or send your request to support@sanxo.eu and we will develop your module within a short period of time.

    What should I do if the function is not working the way I wanted to?

    Although each case is different, the usual method of solving these problems is the following:

    1. Change some settings, maybe there are improper values. After some fast trial & error generally you can find the proper values.
    2. If changing the values didn't have the effect you wanted, then maybe you need to use some different functions (eg. instead of Basic Morphology you need to use Advanced Morphology).
    3. Enhancing your image may also help.
    4. Contact us with your problem (support@sanxo.eu). Please include your project file(s), some image examples and detailed instruction on how the program should work.

    How can I check the support of a specific camera?

    As our software is based on the National Instruments Vision Library, you can use cameras that are supported by NI. The list of supported cameras: https://sine.ni.com/apps/utf8/nipc.specs?action=search&asid=1102

    I have access only to one of the connected uEye cameras in Modular-X. How should I solve this problem?

    The reason of this problem is that when the cameras have similar IDs, Modular-X can not have access to all cameras. Please change camera IDs so that every camera would have different ones. This way Modular-X can have access to all cameras.

    Tip: Please never use simultanously multiple program for accessing your camera images because it will cause malfunction!

    What kind of picture format is supported by Modular-X?

    The supported formats are bmp jpg, jp2, tif, png and aipd.If you wish to use different formats, you should convert it to the above mentioned formats. Some tips how to find software for converting images: https://www.google.com/search?q=free+image+convert

    How can I display the step's calculation time?

    Options / Session Tree / Display Step Time

    Can I run Modular-X in Linux environment?

    Currently the software is supported by Windows operating system (Windows 7, Vista, XP, Embedded).

    How can I display the step's result in the Executor?

    Click on the specific Step -> Details with the right mouse button. Check the results that you want to display. In the Executor the results are updated in two cases:

    -running Inspection Status
    -at the end of a Session run.

    How can I display the measurement results in the Executor?

    This time you should use the Session Status (it is in the Additional Tools). The executor's Inspection Status control result is the sum of all Session Status. For example if every Session Status is Pass, then the Inspection Status is Pass. If any from the Session Status is Fail, then the Inspection Status will be Fail as well.

    How can I temporarily remove/deactivate a step in Editor?

    First click with your right mouse button on the specific Step(s) you want to deactivate and choose Disable (Steps). If you run the session, the selected Step(s) will be skipped. When one Step is disabled, and you want to activate, then just use right click and choose Enable (Steps).

     

    I would like to use an image from a former step. How can I do this?

    Use the Image Buffer function. Click on the former step and insert Acquire Image/Image Buffer. There you can store (Push) the image and later you can insert the stored image into the Session by retrieving function (Get) of the stored image.

     

    How can I set which image to show during running a Modular-X session?

    You need to click with the right mouse button on the particular step you want to see during running Modular-X. Choose Display Result Image. So before the Step's name a small display icon appears, showing the step's image that will be displayed.

    Tip: Every image that we are displaying will increase the running time, so if you are having a time-critical project, display the least picture possible.

    How can I export my project?

    With the Files / Save as command you can make a new copy from the full project, except (if you have) simulated images. Only one of the selected images is saved with a project. If you need the rest of the simulation images, you can copy those into the Simulate directory under the project directory.

    I am trying to acquire an image using the uEye step, but I encounter Error 1172 instead.

    The uEye step in Modular-X uses functions that are included of the IDS driver suite. If you encounter an error similar to the one described here, it is most likely that the firmware version present in your camera differs from the one recommended for Modular-X. The working driver packages can be accessed here. You have to remove your previous installed version of the IDS Software Suite and install our recommended version, then you have to start up the camera via the IDS Camera Manager and the uEye Cockpit. This should replace the firmware in the camera with the version that is confirmed to work.

    Tips

    Use the Array Operator to handle indexed measurements!

    Many functions, like Detect Object, produce a series of results with indexed measurements. It is sometimes in interest to perform additional actions on those results, such as computing the mean or average area of those hundreds of particles found in the image. Loop all of them right through by inserting a For-loop, selecting the cycle index according to Detect Object - # Objects, for instance, then inserting an Array Operator inside the loop, choosing the interesting indexed measurement, like Detect Object - Object [i]. Area, and finally for the Index assign the "For - Cycle Index". Now, when the for-loop runs, the Array Operator step picks a value from the results according to the loop cycle index and this value can be fed into additional processing.
    Note that Min and Max values can be obtained without a loop by changing the Sort by options of the function, like Detect Object, and then inserting an Array Operator with index 1 for instance.

    Utilise Coordinate Systems to put the ROI's always into right places!

    If items under inspection are not always guaranteed to be in the exact same place in the image, it is a good idea to use some easy-to-find 'landmark' as a reference. Use locating algorithms like Match Pattern or Geometric Matching to first find that landmark, create a Coordinate System based on that result and link other ROI's to that as a Reference System.

    Make use of the Image Buffer to detect changes!

    In certain types of inspection applications it is of use to detect changes. This could, for instance, mean that there is a reference image, a 'good' one, and the image under inspection would be compared to that. In Modular-X, such scenarios can be easily implemented using the Image Buffer function to store certain images into memory and later performing a comparison using for example the Image Operator function.

    If in possession of LabVIEW, don't be afraid to try out adding more functionality into the applications!

    Want to perform more complex math operations, for instance, and feel that Modular-X math function is not enough? Create a VI with LabVIEW with the appropriate inputs and outputs to take care of the task.

    METALLURGICAL
    microscope

    PCB
    microscope

    CO-EXTRUSION
    microscope

    JEWELRY
    microscope

    Contact

    Get In Touch