PLC applicatio​n validation using OPC and teststand

Hello
I want to test a PLC application using teststand as script generator. My idea is to use TestStand to generate testcases and verify answer (read status variables, tags)
from the PLC to confirm its code meet requirements.
So question is, can TestStand read ad write PLC tag variables, using an OPC server ?
Did anybody else use this strategy before ?
Pierre Danis

Pierre,
For your information, there is a new TestStand Add-on "OPC DA Connect" which adds a StepType Palette dedicated to OPC Data Access.
You can configure each step by browsing the OPC servers on your network and browsing variables within these servers.
This toolkit has free deployment licence.
Hoping this helps.
Jean-Louis SCHRICKE
├ CTA - Certified TestStand Architect (2008 & 2010 & 2014)
├ CTD - Certified TestStand Developer (2004 & 2007)
└ CLD - Certified LabVIEW Developer (2003 & 2005)

Similar Messages

  • How can i connect LabView to a PLC or Profibus without using OPC?

    I can access data from the PLC or through the Profibus using OPC. Unfortunately is this not fast enough since I need a faster sampling rate. Are there any faster ways to access the PLC data? I’m now using Siemens S7-300 and CP5613 with the driver S7-5613.

    Hi Boris.
    This tip can be very helpful to me, tanks!
    Best regards, Martin

  • Validator using logical AND or logical OR

    How can I validate multiple TextInputs using logical AND or
    logical OR. For example:
    If TextInput1 == Null || TextInput2 == Null causes a
    validation error if both are null but passes validation as long as
    one field is populated or both fields are populated.
    John

    You could have a Boolean variable that is initially false,
    and only becomes true when one of the TextInput becomes populated.
    The variable could be set in the TextInput "change" event.
    Your validation code would check the value of that Boolean
    variable.

  • Validation using dictionaries and NSDictionaryControllers

    Up to now I used NSArrayController for the binding of views to an NSMutableArray.Now I want to use Dictionaries instead of array -with NSDictionaryController. But the usual 'validate…' methods are not called.
    What parameters must be set and in which way to get validation of new entries into a mutable dictionary?

    no answer!

  • Sqlite AND teststand

    Anybody used SQLite and TestStand? I have been able to get my table created by running the sql statements for the generic sql database. However, when I run, I get the error "no such table as UUT_Result" which is there when I "View Data" from the database configuration dialog box. I do have a connection set up in windows odbc admin. I think its not really connecting, though I do get a "succeded" dialog when I test the connection.  I'm unsure about the "database management system" option. I have chosen SQL Server because nothing else seems closer. Also, how is a stored procedure different than a SQL command in the schemas? Is one better than another? I can get MSAccess to work however I am not allowed to use this due to customer requests. My other option is MYSQL which costs $500 per for commercial use. SQLite is totally free. Any help would be appreciated.

    Hello jjeffsmith!
    Thanks for contacting National Instruments regarding the use of databases with TestStand. 
    My recommendation to you at this time is to upgrade to the free version of MySQL which can be found by following this link.  My assumption is that you were referring to the $595 /year cost for MySQL Enterprise edition but never found the link to MySQL Community edition.  The TestStand Database Management System does not include built-in support for SQLite.
    Please don't hesitate to let us know if you require further assistance!
    Derrick S.
    Product Manager
    NI DIAdem
    National Instruments

  • Feasabilit​y using OPC for COMPLETE PLC IO-NO LADDER LOGIC

    Attention intergration Gurus:
    I was wondering if this is REALLY feasable and would work? We need a high channel output using AB PLC's for air solenoids (high current) and +24v Prox's and such.
    I really would like to get rid of the existing (3 plc) design and use labview to do everything.
    The PLC's inter-communicate via RS232, done by three seperate companies.  Thats why its not intergrated.
    Has anyone really used PLC's I/O withou a Ladder program ??
    I can do both, but want to bring things up to todays tech....
    Thanks
    Eric

    I do this frequently, although not with OPC. Usually we use NI's cFP-180x I/O modules, but we've also non-NI hardware.
    The basic questions you would want to ask yourself:
    Can I afford a situation where the system might not behave correctly (for example, if there is a network error or the desktop machine gets stuck doing something else)?
    Is the technology I'm going to use (OPC, Modbus, custom protocol, etc.) going to be fast enough for the balance of the desired program speed and the channel count?
    If the answer to both of those is yes, then you should be able to do this.
    Try to take over the world!

  • Profibus DP S7 300 Siemens PLC to communicate to LabView 8.0 without using opc server

    Does anyone know of a way to communicate with Siemens PLC s7 300 PLC and Step 7 software to LabView 8.2.1 without using a opc server. I'm currently using a opc and it works but it is to slow. Looking for a faster way to move my readings for Siemens to Lab View.

    Hi Duck,
    Please refer to the below articles:
    Profibus Overview
    http://zone.ni.com/devzone/cda/tut/p/id/6958#toc1
    Using an Applicom Profibus Board
    http://zone.ni.com/devzone/cda/tut/p/id/4501
    Hopefully these will help you get started.
    Aashish M
    Applications Engineer
    National Instruments
    http://www.ni.com/support/

  • Hello!!!ho​w can I control an omron plc (sysmac cqm1)with an OPC server?I want to adquire a signal controllin​g its amplitude and frecuency.​How can it be done with OPC server?I already have the NI CD of OPC drivers.Th​ank you

    Hello!!!how can I control an omron plc (sysmac cqm1)with an OPC server?I want to adquire a signal controlling its amplitude and frecuency.How can it be done with OPC server?I already have the NI CD of OPC drivers.Thank you

    Hola Jose David, que OPC estas utilizando?, Si tienes comunicación entre tu computadora y PLC pero falla la comunicación entre el OPC y el PLC? La configuración y direcciones entre los dos es correcta? La comunicación es por cable serial?
    Espero tus respuestas
    Saludos
    Benjamin C
    Senior Systems Engineer // CLA // CLED // CTD

  • I try to access my new Adobe Pro XI download to use it, and a message says "serial number not valid" or words to that effect.  I downloaded on Friday afternoon.

    I try to access my new Adobe Pro XI download to use it, and a message says "serial number not valid" or words to that effect.  I downloaded on Friday afternoon.  Why?  This should have been easy.

    Contact support by web chat to get your serial number issues sorted.
    Mylenium

  • PCo 2.1 and Proficy iFix using OPC DA

    I'm finding some interesting behavior when trying to access Proficy iFIX  HMI / SCADA with PCo 2.1 using OPC DA.
    PCo Version 2.1.0.55
    iFIX version 5.1
    SCADA OS: Windows XP Pro, SP3
    MII Version 12.1.5 Build(99)
    What happens is that when I do a tag list in a tag query, instead of getting the tags, I get the propertes of the tags in the tag list, so what I think PCo's OPC client is doing is resolving to the lowest level of the tag list, which of course would be a tags individual properties.   iFIX UDS does not exhibit this behavior.
    I've tried a variey of settings in PCo, including "Force Flat Namespace"  to no avail.   Is there an option to set how far down the tag list drills?
    Here is my setup, I know most of these settings have nothing to do with my problem but here they are for completness:
    Source System Type:  OPC DA
    OPC Server Name:  OPC Data Access 2.0 for ifix
    Specification:  DA 2.05A
    Acquistion Mode:  Synchronous
    Read Source: PCoCache
    Force Flat Namespace: False
    Synchronous Read Source: Device
    Acceptable Data Quality: Good
    Activate Items: Both
    Agent:
    No Subcription Items
    Communication: MII
    Tag Query Cache Mode:  Cache:

    What happens if you try to add some Tags using the Subscription tab on the Agent Instance? Do you get the same behavior in the OPC Browser in PCo?
    - Steve

  • Set up and control "counter" in S7-300 by OPC and LabVIEW

    Hi everyone,
    I am using a PLC S7-300 and OPC Server for my projects. I have a problem: S7-300 has a counter module which count digital signal. I only can set it up by using SIMATIC STEP 7. Can I set up counter module by only using OPC Server and LabVIEW
    does anyone have any solution or any idea for my problem?
    could you please help me...
    thank you
    Solved!
    Go to Solution.

    Hi Echion,
    NI-DAQ(mx) is used just for NI-Hardware: no you can't use it.
    To program the PLC you need to use the right programming environment. For Siemens S7 you need to use Simatic (or maybe some other 3rd party software supporting IEC61131). Point.
    The OPC server is used just for data exchange. It's no programming interface!
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • NI OPC and S7200

    HI i want to develop SCADA application for S7 200 PLC. I am using NI-OPC. I have connected S7200 PLC to Ethernet network through CP243-1 communication module. DO i need additional hardware to communicate S7 200 with NI-OPC.
    PBP (CLAD)
    Labview 6.1 - 2012 SP1
    KUDOS ARE WELCOMED.
    If your problem get solved then mark as solution.

    Hey prashantpatel21,
    All you really need it to connect to the network through the Ethernet, which you have already done.
    Is the S7 - 200 Siemens device?
    If so, it is supported and you should be able to create the tags to connect to the OPC server using NI OPC Server.
    Do refer to Connect to Any PLC for further information!!
    Aashish M
    Applications Engineer
    National Instruments
    http://www.ni.com/support/

  • I am trying to use eprint and when I login it says my email address isnt registered

    i am trying to use eprint, it says login, login says I am not registered, so I use create function, it says my email address in already in use, so I try retrieving password, then it says email address doesnt exist. so I can not use eprint.

    Hi,
    I would guess this is  an AIM valid Screen Name such as an Apple issued @mac.com account.
    I would also guess you travel to other countries.
    There have been several posts about @mac.com names and people who travel and use their Screen Name elsewhere having the name Suspended.
    Can you Log in here  https://settings.aim.com/ ?
    Is this where you saw the Suspended message ?
    For AIM issued name the answer is to change your Password as this tends to prove you own the account.
    This does not work for Apple IDs used as  AIM Valid Screen Names as AIM can't tell when the password is changed (They can only see it when you log in)
    AIM's Suspended Account page has an email ([email protected]) on it to contact if your account remains Suspended.
    However you need to be very clear that you have an Apple Issued Name and that you know that resetting the password that works for AIM Names and that you would like them to reset the account.
    More recently this has been a sticking point.  It seems the Contact you get does not always know about the agreement that AIM recognises Apple Issued IDs as Valid Screen Names and that the AIM  servers can only view the passwords at specific times (or at least confirm them) so you changing it will make no difference and that they have to step in manually.
    10:39 PM      Saturday; October 20, 2012
    Please, if posting Logs, do not post any Log info after the line "Binary Images for iChat"
      iMac 2.5Ghz 5i 2011 (Mountain Lion 10.8.2)
     G4/1GhzDual MDD (Leopard 10.5.8)
     MacBookPro 2Gb (Snow Leopard 10.6.8)
     Mac OS X (10.6.8),
     Couple of iPhones and an iPad
    "Limit the Logs to the Bits above Binary Images."  No, Seriously

  • Not able to run validation using validation.xml & validator-rules.xml

    Hello Friends,
    I am not able to run validation using validation.xml & validator-rules.xml.
    Entire code in running prefectly but no error messages are prompted.
    Following is my code:
    File Name : struts-config.xml
    <struts-config>
    <!-- Form Beans Configuration -->
    <form-beans>
    <form-bean name="searchForm"
    type="com.solversa.SearchForm"/>
    </form-beans>
    <!-- Global Forwards Configuration -->
    <global-forwards>
    <forward name="search" path="/search.jsp"/>
    </global-forwards>
    <!-- Action Mappings Configuration -->
    <action-mappings>
    <action path="/search"
    type="com.solversa.SearchAction"
    name="searchForm"
    scope="request"
    validate="true"
    input="/search.jsp">
    </action>
    </action-mappings>
    <!-- Message Resources Configuration -->
    <message-resources
    parameter="ApplicationResources"/>
    <!-- Validator Configuration -->
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames"
    value="/WEB-INF/validator-rules.xml,
    /WEB-INF/validation.xml"/>
    </plug-in>
    </struts-config>
    <br> File Name : <b> validation.xml </b>
    <form-validation>
    <formset>
    <form name="searchForm">
    <field property="name" depends="minlength">
    <arg key="label.search.name" position = "0"/>
    <arg1 name="minlength" key="${var:minlength}" resource="false"/>
    <var>
    <var-name>minlength</var-name>
    <var-value>5</var-value>
    </var>
    </field>
    <field property="ssNum" depends="mask">
    <arg0 key="label.search.ssNum"/>
    <var>
    <var-name>mask</var-name>
    <var-value>^\d{3}-\d{2}-\d{4}$</var-value>
    </var>
    </field>
    </form>
    </formset>
    </form-validation>
    <br> File Name : <b> SearchForm.java </b>
    package com.jamesholmes.minihr;
    import java.util.List;
    import org.apache.struts.validator.ValidatorForm;
    public class SearchForm extends ValidatorForm
    private String name = null;
    private String ssNum = null;
    private List results = null;
    public void setName(String name) {
    this.name = name;
    public String getName() {
    return name;
    public void setSsNum(String ssNum) {
    this.ssNum = ssNum;
    public String getSsNum() {
    return ssNum;
    public void setResults(List results) {
    this.results = results;
    public List getResults() {
    return results;
    <br> File Name : <b> SearchAction.java </b>
    package com.jamesholmes.minihr;
    import java.util.ArrayList;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    public final class SearchAction extends Action
    public ActionForward execute(ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws Exception
    EmployeeSearchService service = new EmployeeSearchService();
    ArrayList results;
    SearchForm searchForm = (SearchForm) form;
    // Perform employee search based on what criteria was entered.
    String name = searchForm.getName();
    if (name != null && name.trim().length() > 0) {
    results = service.searchByName(name);
    } else {
    results = service.searchBySsNum(searchForm.getSsNum().trim());
    // Place search results in SearchForm for access by JSP.
    searchForm.setResults(results);
    // Forward control to this Action's input page.
    return mapping.getInputForward();
    <br> File Name : <b> EmployeeSearchService.java </b>
    package com.jamesholmes.minihr;
    import java.util.ArrayList;
    public class EmployeeSearchService
    /* Hard-coded sample data. Normally this would come from a real data
    source such as a database. */
    private static Employee[] employees =
    new Employee("Bob Davidson", "123-45-6789"),
    new Employee("Mary Williams", "987-65-4321"),
    new Employee("Jim Smith", "111-11-1111"),
    new Employee("Beverly Harris", "222-22-2222"),
    new Employee("Thomas Frank", "333-33-3333"),
    new Employee("Jim Davidson", "444-44-4444")
    // Search for employees by name.
    public ArrayList searchByName(String name) {
    ArrayList resultList = new ArrayList();
    for (int i = 0; i < employees.length; i++) {
    if (employees.getName().toUpperCase().indexOf(name.toUpperCase()) != -1) {
    resultList.add(employees[i]);
    return resultList;
    // Search for employee by social security number.
    public ArrayList searchBySsNum(String ssNum) {
    ArrayList resultList = new ArrayList();
    for (int i = 0; i < employees.length; i++) {
    if (employees[i].getSsNum().equals(ssNum)) {
    resultList.add(employees[i]);
    return resultList;
    <br> File Name : <b> Employee.java </b>
    package com.solversa;
    public class Employee
         private String name;
         private String ssNum;
         public Employee(String name, String ssNum) {
         this.name = name;
         this.ssNum = ssNum;
         public void setName(String name) {
         this.name = name;
         public String getName() {
         return name;
         public void setSsNum(String ssNum) {
         this.ssNum = ssNum;
         public String getSsNum() {
         return ssNum;
    Pls help me out.
    Not able to prompt errors.

    Hello Friends,
    I am not able to run validation using
    validation.xml & validator-rules.xml.
    Entire code in running prefectly but no error
    messages are prompted.
    Following is my code:
    File Name : struts-config.xml
    <struts-config>
    <!-- Form Beans Configuration -->
    <form-beans>
    <form-bean name="searchForm"
    type="com.solversa.SearchForm"/>
    ans>
    <!-- Global Forwards Configuration -->
    <global-forwards>
    <forward name="search" path="/search.jsp"/>
    global-forwards>
    <!-- Action Mappings Configuration -->
    <action-mappings>
    <action path="/search"
    type="com.solversa.SearchAction"
    name="searchForm"
    scope="request"
    validate="true"
    input="/search.jsp">
    tion>
    </action-mappings>
    <!-- Message Resources Configuration -->
    <message-resources
    parameter="ApplicationResources"/>
    <!-- Validator Configuration -->
    <plug-in
    className="org.apache.struts.validator.ValidatorPlugI
    ">
    <set-property property="pathnames"
    value="/WEB-INF/validator-rules.xml,
    /WEB-INF/validation.xml"/>
    >
    </struts-config>
    <br> File Name : <b> validation.xml </b>
    <form-validation>
    <formset>
    <form name="searchForm">
    <field property="name" depends="minlength">
    <arg key="label.search.name" position = "0"/>
    <arg1 name="minlength" key="${var:minlength}"
    resource="false"/>
    <var>
    <var-name>minlength</var-name>
    <var-value>5</var-value>
    </var>
    </field>
    <field property="ssNum" depends="mask">
    <arg0 key="label.search.ssNum"/>
    <var>
    <var-name>mask</var-name>
    <var-value>^\d{3}-\d{2}-\d{4}$</var-value>
    </var>
    </field>
    /form>
    </formset>
    form-validation>
    <br> File Name : <b> SearchForm.java </b>
    package com.jamesholmes.minihr;
    import java.util.List;
    import org.apache.struts.validator.ValidatorForm;
    public class SearchForm extends ValidatorForm
    private String name = null;
    private String ssNum = null;
    private List results = null;
    public void setName(String name) {
    this.name = name;
    public String getName() {
    return name;
    public void setSsNum(String ssNum) {
    this.ssNum = ssNum;
    public String getSsNum() {
    return ssNum;
    public void setResults(List results) {
    this.results = results;
    public List getResults() {
    return results;
    <br> File Name : <b> SearchAction.java </b>
    package com.jamesholmes.minihr;
    import java.util.ArrayList;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    public final class SearchAction extends Action
    public ActionForward execute(ActionMapping
    mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
    throws Exception
    EmployeeSearchService service = new
    EmployeeSearchService();
    ArrayList results;
    SearchForm searchForm = (SearchForm) form;
    // Perform employee search based on what criteria
    was entered.
    String name = searchForm.getName();
    if (name != null && name.trim().length() > 0) {
    results = service.searchByName(name);
    else {
    results =
    service.searchBySsNum(searchForm.getSsNum().trim());
    // Place search results in SearchForm for access
    by JSP.
    searchForm.setResults(results);
    // Forward control to this Action's input page.
    return mapping.getInputForward();
    <br> File Name : <b> EmployeeSearchService.java </b>
    package com.jamesholmes.minihr;
    import java.util.ArrayList;
    public class EmployeeSearchService
    /* Hard-coded sample data. Normally this would come
    from a real data
    source such as a database. */
    ivate static Employee[] employees =
    new Employee("Bob Davidson", "123-45-6789"),
    new Employee("Mary Williams", "987-65-4321"),
    new Employee("Jim Smith", "111-11-1111"),
    new Employee("Beverly Harris", "222-22-2222"),
    new Employee("Thomas Frank", "333-33-3333"),
    new Employee("Jim Davidson", "444-44-4444")
    // Search for employees by name.
    public ArrayList searchByName(String name) {
    ArrayList resultList = new ArrayList();
    for (int i = 0; i < employees.length; i++) {
    if
    (employees.getName().toUpperCase().indexOf(name.toU
    pperCase()) != -1) {
    resultList.add(employees[i]);
    return resultList;
    // Search for employee by social security number.
    public ArrayList searchBySsNum(String ssNum) {
    ArrayList resultList = new ArrayList();
    for (int i = 0; i < employees.length; i++) {
    if (employees[i].getSsNum().equals(ssNum)) {
    resultList.add(employees[i]);
    return resultList;
    <br> File Name : <b> Employee.java </b>
    package com.solversa;
    public class Employee
         private String name;
         private String ssNum;
         public Employee(String name, String ssNum) {
         this.name = name;
         this.ssNum = ssNum;
         public void setName(String name) {
         this.name = name;
         public String getName() {
         return name;
         public void setSsNum(String ssNum) {
         this.ssNum = ssNum;
         public String getSsNum() {
         return ssNum;
    Pls help me out.
    Not able to prompt errors.
    Hi,
    Your error message are not displaying because u does not made Message-Resoucrce property file (Resource Bundle) when you make it .
    give it entry in
    struts-config.xml
    <message-resources parameter="ApplicationResources" />
    and
    define key and corresponding error message to key in this ApplicationResources i.e
    #Error Resources
    label.search.ssNum=Plz Enter correct ssNum

  • How to get values from a table(in jsp) for validation using javascript.

    hi,
    this is praveen,pls tell me the procedure to get values from a table(in jsp) for validation using javascript.
    thank you in advance.

    Yes i did try the same ..
    BEGIN
    select PROD_tYPE into :P185_OFF_CITY from
    magcrm_setup where atype = 'CITY' ;
    :p185_OFF_CITY := 'XXX';
    insert into mtest values ('inside foolter');
    END;
    When i checked the mtest table it shos me the row inserted...
    inside foolter .. Now this means everything did get execute properly
    But still the vallue of off_city is null or emtpy...
    i check the filed and still its empty..
    while mtest had those records..seems like some process is cleaining the values...but cant see such process...
    a bit confused..here..I tried on Load after footer...
    tried chaning the squence number of process ..but still it doesnt help
    some how the session variables gets changed...and it is changed to empty
    Edited by: pauljohny on Jan 3, 2012 2:01 AM
    Edited by: pauljohny on Jan 3, 2012 2:03 AM

Maybe you are looking for

  • IMPORTANT: No more "backup every time" or endless apple logo crashes!

    So after 11 crashes where the iPhone wouldn't come back after bootup, I had enough. I took it to the Apple Store and they replaced it. Since then, it crashed 2 more times. Yet again, had enough, and decided to try some experimenting. Using this metho

  • How has someone HACKED my iPhone 5c? and how do I stop it?

    I upgraded to an iPhone 5c Monday with AT&T. The first night I got it I was downloading the usual apps and setting my phone up using my Apple ID and iCloud. I downloaded a new app called Tips, by Trusper. Not saying that is the cause but that is the

  • Exporting Report to PDF in Landscape

    Hello All, After my Hyperion report finished, I exported the result into PDF. Due to having too many rows, HTML and Excel are not viable options. After the export finished writing to a PDF file, I checked the report and realized that unless I find a

  • Calculated Key Figures based on Attributes

    Hi In one of our queries we need to create a calculated key figure based on an attribute. Any suggestions on the best way to do this? I have looked at a Virtual Key Figure, but because our Cube name contains underscores (_) it shortdumps. Is there a

  • CVS exit type - Cstics Surcharge value get delta price on Config JSP

    Hi friends, I am working on 2007 isa, when we have any configurable product,if we hit configure button, it takes us to config ui with all char values(dropdowns or radio or checkboxes). Beside each cstics i can see its price, Basically my req is when