Inability to use dsc tags in clusters
I am looking at implementing an interface to
a Siemens s5 plc via it's as511 serial driver.
I purchase Labview dsc for this. However, when
I create a tag, and try to drag it into a
cluster, I lose the tag. The current version (6.1)
does not seem to support having tags within a cluster.
Yet, this is the only approach I can see given that
I need to somehow group roughly 500 process elements.
I don't see how I can have all these elements on
one main diagram. Am I missing something????
I was hoping to develop a Labview type multipane
user environment, but it does not appear to be
possible at present. If they don't fix this, I may
have to look elsewhere... ie wincc or intouch.
thoughts?
:->
tb
tb,
Maybe, I do not understand you correctly, but I could drag and drop a tag control in a cluster control and as well the same thing in the diagram as constants.
With unbundle you can get the Tag reference and you can wire that to any VI that require those tags as input.
If you have a lot of Tags configured in your .scf file you could use the functionality to group some of the tags together in Tag Groups. Some DSC VIs then handle as input those Tag Group Names. This makes writing a DSC application maybe more comfortable.
LabVIEW itself has the easy fuctionality of using SubVIs and those VIs could pop-up as additional window when you want to display some more information.
Unfortunately the screen size might be a limiting factor of 17 inches and if yo
u are lucky of 21". I assume other Software packages could not make the screen bigger
If I got your question wrong, you could give me maybe more details.
Hope this helps
Roland
Similar Messages
-
What is the best way to detect loss of OPC Server connection when using DSC Tags?
I'm using the DSC Module on a new project and I'm pretty impressed so far. The HMI Wizard has saved me quite a bit of time.
My application is configured where the DSC Tags are connected to remote OPC Server Tags.
The issue I'm having is that I cannot detect a loss of the OPC Server when the application is running. Read's of the front panel controls/indicators still return values and the little "connection" icon next them is still green. Even if the connection icon turned red it wouldn't help since the Front Panel is not visible when the main application is running. It is a Sub-VI that's in charge of OPC Data Interfacing. The rest of the application uses the data from the OPC Sub-
VI.
I cannot effect a change on the OPC Servers, so I need a method of detection when the Server is lost on my end.
Any ideas on the best way to do this?
Thanks,
JimHi Jim,
Ideally, error-reporting and -handling should be the way to handle this. However, if errors are not reported/handled as is sometimes the case with OPC, a quick-n-dirty way to do this would be to check for a "heartbeat" signal from your OPC Server. This could be a boolean tag which toggles On and Off (or a counter ticking). You then read this Tag in DSC in a slow loop using the Read Tag VI (not the front-panel control). And keep track of the Changed? output from this Read Tag VI.
As long as the 'Changed?' output is true, you are receieving data from the OPC Server, and hence it's alive. You may add some deadband logic to wait for a specific period of time before declaring the Server's really dead!
Hope this helps,
K
halid -
WIll using a multiprocessor system improve DSC Tag Engine performance?
We are developing a multiple workstation vacuum chamber automation control application using the DSC.
The chambers under control each have a set of process controllers (Opto22 "Ultimate Brains") running the fundamental interlock and process mechanisms via their own software. The brains are set up for communication via OPC, thus LabVIEW can monitor the IO states of the system as well as variable values in the brain software via DSC tags. In addition, LV can manipulate variables to make requests that the brain software branch to different subroutines. The other ("control") workstations in the system pass requests to the brains via the software on the monitoring workstation, so as to ensure that requests are enqueued properly.
The problem is at this point there are 1300 tags configured for the DSC, and the workstation responsible for monitoring them shows near 100% CPU load all the time; most of that taken by the DSC Engine. This is with only half of the final project's chambers installed and active. As a result, it sometimes takes several attempts for a control workstation to successfully pass a request to the brains via the monitoring workstation.
We are concerned that performance will only worsen as we bring the additional chambers online.
Would adding a second processor to the workstation improve performance? If dual processors would help, would additional processors help more?
Note: we are examining which tags we monitor all the time and are going to try to reduce that list to those tags critical for normal operation, with an option to temporarily expand monitoring to the larger list for debugging purposes. I am concerned that even if that helps now, the problem will get worse again as we bring additional components on line. Is it the sheer number of tags defined for the DSC engine that gates the load on the engine, or the number that we are actively reading with our program?
Thanks for any illumination you can offer.
Kevin R
Kevin Roche
Advisory Engineer/Scientist
Spintronics and Magnetoelectronics group
IBM Research AlmadenI have a partial answer. We've swapped in the dual processor machine and see some improvement. The processor load was still hovering around 100%, though.
More importantly, we think we've learned something about how the DSC engine is actually working. The monitoring workstation not only runs the DSC engine to trade data with the other workstations, but an OPC server to handle transactions with the "brains". So any requests for data from the brains really are routed via the monitoring workstation.
We had built one common tag database because we thought that would simplify programming. We did some tests today, however, and discovered that if we stop the tag engines on the control workstations, processor load drops dramatically on the monitoring workstation.
What we've realized is that apparently if a read tag exists in a machine's database, the DSC fetches its value, regardless of whether our LabVIEW software ever actually uses the value. We deleted most of the brain tags from the control workstation databases, leaving only the LV memory tags and the few brain tags actually used by our vis. So now the monitoring workstation is not being asked to query those 1000 tags by 3 different tag engines, only by the one using it.
CPU load is down to about 73% now (because the monitoring workstation is still itself watching those 1000 tags). That's still high, but we have a better idea what is going on.
So -- is there any way to have the DSC engine only fetch a tag value when you really need it, rather than always fetching every tag in the database?
Kevin Roche
Advisory Engineer/Scientist
Spintronics and Magnetoelectronics group
IBM Research Almaden -
DSC TAG ENGINE doesn't run after using eval copy of LabView
I used an eval copy of LabView.
I uninstalled this eval copy and I bought and installed the full NI Developer Suite.
Now Labview 6i (6.0) works properly but I'm unable to use DSC because the Tag Engine stops immediately with this message: "This evaluation copy of Labview has expired. Engine will close".
I'm using a Pentium III PC 128Mb RAM Win98 italian version.Hi Silvano,
I found a similar case from another customer. Nationl Instruments is aware of this issue. But the only workaround for now would be (propre version):
1) uninstall LabVIEW DSC and LabVIEW
2) delete the registry key from the old LabVIEW eval version with regedit.exe.
[HKEY_LOCAL_MACHINE\Software\National Instruments\LabVIEW\lvedid]
3) reinstall LabVIEW and LabVIEW DSC
(short version)
1) Rename lvedid in the:
[HKEY_LOCAL_MACHINE\Software\National Instruments\LabVIEW\lvedid] to e.g. ..\LabVIEW\1lvedid
Hope this helps
Roland -
How do I best upgrade a multiworkstation app using DSC from LV7.2 to 8.6?
I have an extended, properly functioning process control and data acquisition application running across multiple workstations (roughly 10). The workstations share information with each other and with process controllers via DSC and OPC.
We're currently running at version 7.1, and this spring we want to update to the current version of Labview (which, by then, will be 8.6.1; we are on the SSP).
I understand that the tag engine/database have changed significantly between 7.1 and the current version of the DSC, and wonder if there is a good roadmap for executing this upgrade to minimize downtime on our tool?
Kevin Roche
Advisory Engineer/Scientist
Spintronics and Magnetoelectronics group
IBM Research AlmadenHi Ben -- we do not log history or events in the DSC, so that is not an issue.
The application is controlling a multi-chamber (7 connected vacuum chambers arranged in a star configuration) thin film deposition system. The basic control, interlocks, and safety/process security of the vacuum components is done via a series of Opto22 "brains", which are essentially simple processors running programs to control IO for valves and temperature control systems. They communicate with each other via Ethernet.
There is an OPC server for the Opto22 brains, which runs on one workstation dedicated to use as a gateway between LabVIEW and the network of brains. A DSC tag database is set up on that machine to access some of the IO states and variables in the brains, and then the other workstations have tag databases that reference those tags (the brains' communications interfaces can be overwhelmed if too many workstations access them simultaneously, so we use a single workstation as the gateway). Via the gateway, a workstation may read/manipulate some of the io states directly, and make other requests of the brains' software by setting flag variables in the strategies running therein.
Each chamber also has a complex motion control system for process manipulation, as well as extensive serial/parallel communications to control the gas systems, deposition power supplies, etc. The process software on each workstation makes available a "snapshot" of its process state available via memory tags in the DSC, so that the workstation controlling the central chamber can detect when a task in an outer chamber is completed and move samples between the different chambers.
All the workstations, brains, and motion control systems are interconnected via an Ethernet network independent of our building intranet. There is one additional workstation that maintains a process database, where each workstation can record each process task and the samples affected by it.
Everything is working at this point, but we recognize that we are overdue to bring the system up to the current level.
In particular, guidance as to a possible way to upgrade the gateway tag DSC database and then the others referencing it in advance of recompiling all the software, if that is possible.
Kevin Roche
Advisory Engineer/Scientist
Spintronics and Magnetoelectronics group
IBM Research Almaden -
LV7.1 DSC tag engine VS LV8.6 DSC shared variables
I'm currently running LV7.1 with DSC and RT. To handle communications and logging RT variables I'm using the init / read / write publish.vi's on the RT side and datasockets on the HMI side (Windows XP). This has worked out great - new tags can be programmatically created in real time with the publsih vi's and then I go to the the .scf file and use the tag configuration wizard to add them to my scf file and handle data logging. This worked very well - the wizard would organize all of the memory tags into folders by block name used by the init publish vi. I could also select entire groups of tags and add hundreds at a time to the .scf file. Hardware Tag also worked in a similar fashion, organizing tags by controller and module folders. Now - looking at LV8.6.I found I can still use the init / read / publish vi's on the RT side - great. However there is not tag configuration editor as in LV7.1 to let me add large numbers of tags through a wizard. The closest thing I've found is to create a library to represent each block name from the RT init publish.vi then use "create bound variables" option under the library to bind the new shared variables to the RT memory tags. I can browse to the tags on the controller by network items, but when I add them it doesn't bring the block name of the tag as it did in 7.1, only the item name. I use a lot of PID loops that share the same tag names (i.e.: P,I,D, mode, output), so not including the block name represents an organizational problem. The problem with this is, it's very labor intensive compared to the wizard in LV7.1 DSC, especially talking about creating systems with thousands of RT memory tags. Also, there is a similar problem with hardware channels (I'm using compact FieldPoint). To log channels via DSC do I have to create a shared variable for each channel to access the DSC logging capabilities? Again how do I add all of the hardware channels in some organized fashion? I hope I'm missing some tool that is an analog to the tag configuration wizard to bring in these channels and organize them. Any help or suggestions would be appreciated. Thanks,Brad
Hi lb,
We're glad to hear you're upgrading, but because there was a fundamental change in architecture since version 7.1, there will likely be some portions that require a rewrite.
The RTE needs to match the version of DSC your using. Also, the tag architecture used in 7.1 is not compatible with the shared variable approach used in 2012. Please see the KnowledgeBase article Do I Need to Upgrade My DSC Runtime Version After Upgrading the LabVIEW DSC Module?
You will also need to convert from tags to shared variables. The change from tags to shared variables took place in the transition to LabVIEW 8. The KnowledgeBase Migrating from LabVIEW DSC 7.1 to 8.0 gives the process for changing from tags to shared variables.
Hope this gets you headed in the right direction. Let us know if you have more questions.
Thanks,
Dave C.
Applications Engineer
National Instruments -
Has anybody used DSC or the OPC server to access DNP 3.0 devices
I have a potential client that has some devices that communicate using DNP 3.0. I see that DNP is supported in OPC server 5.1. I have zero experience using DSC and OPC, but I want to send this client a small demo app so he can see LabVIEW working with his equipment.
If anybody has done this, could you please give me some pointers on where to start, or better yet, some example code.
This will be on WinXP, LabVIEW 7, OPC 5.1 and if needed, DSC 7.
Thanks
Ed
Ed Dickens - Certified LabVIEW Architect - DISTek Integration, Inc. - NI Certified Alliance Partner
Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences.Thanks Robert,
We already have DSC 7, so if it�s easier and/or quicker, I�ll probably end up using that. I guess what I need to do run through the Introduction to DSC so I at least know the basics of it.
One question, do I need to have the customer�s equipment to configure the DNP connection so I can test communication with the Server Explorer? Or do I just need to know the format of the Tags to configure so he can test it.
Thanks Again
Ed
Ed Dickens - Certified LabVIEW Architect - DISTek Integration, Inc. - NI Certified Alliance Partner
Using the Abort button to stop your VI is like using a tree to stop your car. It works, but there may be consequences. -
Creation of triggers using CFQUERY tag is giving error
Hi,
I am creating triggers and stored procedure on ORACLE data
base using <CFQUERY>.
<CFQUERY DATASOURCE="CRM">
create or replace trigger AWC_ACCOUNTINGPERIODSID_TRI
before insert on AWC_ACCOUNTINGPERIODS
for each row
begin
select AWC_ACCOUNTINGPERIODSID_SEQ.nextval into :new.AP_ID
from dual;
end;
</CFQUERY>
But the created trigger is not compiled, it is giving the
following error
"Line # = 1 Column # = 6 Error Text = PLS-00103: Encountered the
symbol "" when expecting one of the following: begin case declare
exit for goto if loop mod null pragma raise return select update
while with <an identifier> << close current delete
fetch lock insert open rollback savepoint set sql execute commit
forall merge pipe The symbol "" was ignored."
If I edit that trigger in enterprise manager console by
pressing space and compile that, it is working fine with out any
error. If i run the above statement in sql *plus, It is working
fine with out any error. Can you please tell me why this is
happening if i run it using cfquery tag and also the possible
solutions.
Thanks in advance,
VinodI can't tell you why your particular trigger is failing, but
here is some "typical" reasons from Oracle's metalink.
Common reasons for PLS-00103
Error Summary
PLS-00103 Encountered the symbol "%s" when expecting one of
the following (Oerr
LS.103)
Error Details
~~~~~~~~~~~~~
Error: PLS-00103
Text: Encountered the symbol "%s" when expecting one of the
following:
Cause: This error message is from the parser. It found a
token
(language element) that is inappropriate in this context.
Action: Check previous tokens as well as the one given in the
error message. The line and column numbers given in the
error
message refer to the end of the faulty language construct.
PLS-00103 errors can often be difficult to localize what the
error is so here are some
common reasons for PLS-00103 errors..
A very common reason for PLS-00103 is when a reserved word is
used, with a reserved word
means words that names an oracle object or a built in
procedure, for example MOD, ABS,
TABLE, VIEW etc..
When trying to use SQL*PLUS commands in PL/SQL procedures,
like SPOOL, SET and other
commands that belongs to SQL*PLUS can result in this error.
Using parameter declaration at the IN/OUT clause in a
procedure, this works in versions
prior to 8.0.4, but it just ignored the declaration.
Using DDL commands in PL/SQL will fail in PLS-00103, the way
to use DDL commands is
to build a procedure in dynamic sql.
When creating package specification and a package body, a
PLS-00103 error will occur
if there is no slash, '/', after the package specification.
Phil -
How to get the values of an Array using JSP Tags
Hey guys,
I need some help. I've splited a String using
fn:split(String, delim) where String = "1,2,3,4" and delim is ,
This method returns an Array of splited Strings. how do i get the values from this array using jsp tags. I don't wanna put java code to achive that.
Any help would be highly appreciated
ThanksThe JSTL forEach tag.
In fact if all you want to do is iterate over the comma separated list, the forEach tag supports that without having to use the split function.
<c:set var="list" value="1,2,3,4"/>
<c:forEach var="num" items="${list}">
<c:out value="${num}"/>
</c:forEach>The c:forTokens method will let you do this with delimiters other than a comma, but the forEach tag works well just with the comma-delimited string. -
How to use HTML Tags in Smartforms
Hi,
Can you please help me out in knowing how to use HTML tags in Smartforms,
suppose i want to display some text in BOLD i should use the tag </b> as shown
</b> Header Information <b>
regards
RanveerHi Ranveer ,
check this following links,
hope this wil helps you
<a href="http://sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20code%20samples/smartforms/smartform%20in%20abap.pdf">check this link,to know abt HTML in smartforms</a>
rgds,
shan -
Error when run a simple sample using jsp tag
When i run a jsp using jsp tag, the tomcat gave me the following information:
Resolve entity failed-//Sun Microsystems,Inc.//DTD JSP Tag Library 1.2//EN http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd
My tld file is:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>sample</short-name>
<uri>WEB-INF/sampleTag</uri>
<display-name>SampleTag</display-name>
<description>Sample TLD</description>
<tag>
<name>time</name>
<tag-class>com.sample.taglib.TimeTag</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
Anybody can tell me why?
Thanks!!!It's strange bacause DTD is available under given address.
Which JSP version are you using?
Do you have any other tld file, which uses the same DTD version? Do tags define in it work properly?
Maby try to use 1.1 version of DTD?
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">But remember than version 1.1 has another node names (see http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd). -
How to use Flex tag library in jsp
Hi All,
We are planning to use flex in our J2EE application in order
to show some charts. Our j2ee application is in JSP,Struts. I have
searched on google about this and found that I can include flex 3
tab library in the jsp in order to use mxml tag in the jsp. I have
written a sample program in the jsp which uses flex.
<%@ taglib uri="FlexTagLib" prefix="mm" %>
<SCRIPT LANGUAGE="JavaScript">
function showMessage() {
message.value = "Use this application wisely";
function hideMessage() {
message.value = "";
</SCRIPT>
<mm:mxml border="5" onmouseover="showMessage();"
onmouseout="hideMessage();">
</mm:mxml>
<TABLE>
<TR>
<TD><input type="text" name="message"
size="50"></TD>
</TR>
</TABLE>
I have added entry inweb.xml. See below,
<taglib>
<taglib-uri>FlexTagLib</taglib-uri>
<taglib-location>/WEB-INF/tlds/flex-bootstrap.jar</taglib-location>
</taglib>
Following are the problems that I am currently facing.
1) Could anybody let me know whether the entry of
<taglib> tag is correct in the web.xml. Is it the correct
jar(flex-bootstrap.jar) that I should include?
2) If yes, from where to download it? or
If no, what is correct jar that i should include and how?
your response will be highly appriciated as this is the major
requirement in our project?
Thanks ,
ChandanHi,
Pleas find details at the URL below.
http://labs.adobe.com/wiki/index.php/Flex_2_Tag_Library_for_JSP
Hope this helps. -
How to achive in this data in oracle using xml tag ?
hi All ,
i am using sql 3.1
i have one question that how can i achieve this below XML tag using XML query. this below whatever i am showing here data is one table . how can i achieve this things using XML tag like xml forest or whatever may be
please help me .
---code
<Metadata>
<Dept Deptno="10">
<Name>Administration</Name>
<Location>Seattle</Location>
<Employees>
<Emp empid="200">
<FirstName>Jennifer</FirstName>
<LastName>Whalen</LastName>
</Emp>
</Employees>
</Dept>
<Dept Deptno="20">
<Name>Marketing</Name>
<Location>Toronto</Location>
<Employees>
<Emp empid="201">
<FirstName>Michael</FirstName>
<LastName>Hartstein</LastName>
</Emp>
<Emp empid="202">
<FirstName>Pat</FirstName>
<LastName>Fay</LastName>
</Emp>
</Employees>
</Dept>
</metadata>
Thanks
Dambyplease reply
-
I want to display BLOB image in JSP Using html tags IMG src=
GoodAfternoon Sir/Madom
I Have got the image from oracle database but want to display BLOB image using <IMG src="" > Html tags in JSP page . If it is possible than please give some ideas or
Send me sample codes for display image.
This code is ok and working no problem here Please send me code How to display using html tag from oracle in JSP page.
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%@ page import="javax.swing.ImageIcon;" %>
<%
out.print("hiiiiiii") ;
// declare a connection by using Connection interface
Connection connection = null;
/* Create string of connection url within specified format with machine
name, port number and database name. Here machine name id localhost
and database name is student. */
String connectionURL = "jdbc:oracle:thin:@localhost:1521:orcl";
/*declare a resultSet that works as a table resulted by execute a specified
sql query. */
ResultSet rs = null;
// Declare statement.
PreparedStatement psmnt = null;
// declare InputStream object to store binary stream of given image.
InputStream sImage;
try {
// Load JDBC driver "com.mysql.jdbc.Driver"
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
/* Create a connection by using getConnection() method that takes
parameters of string type connection url, user name and password to
connect to database. */
connection = DriverManager.getConnection(connectionURL, "scott", "root");
/* prepareStatement() is used for create statement object that is
used for sending sql statements to the specified database. */
psmnt = connection.prepareStatement("SELECT image FROM img WHERE id = ?");
psmnt.setString(1, "10");
rs = psmnt.executeQuery();
if(rs.next()) {
byte[] bytearray = new byte[1048576];
int size=0;
sImage = rs.getBinaryStream(1);
//response.reset();
response.setContentType("image/jpeg");
while((size=sImage.read(bytearray))!= -1 ){
response.getOutputStream().write(bytearray,0,size);
catch(Exception ex){
out.println("error :"+ex);
finally {
// close all the connections.
rs.close();
psmnt.close();
connection.close();
%>
ThanksI have done exactly that in one of my applications.
I have extracted the image from the database as a byte array, and displayed it using a servlet.
Here is the method in the servlet which does the displaying:
(since I'm writing one byte at a time, it's probably not terribly efficient but it works)
private void sendImage(byte[] bytes, HttpServletRequest request, HttpServletResponse response) throws IOException {
ServletOutputStream sout = response.getOutputStream();
for(int n = 0; n < bytes.length; n++) {
sout.write(bytes[n]);
sout.flush();
sout.close();
}Then in my JSP, I use this:
<img src="/path-to-servlet/image.jpg"/>
The name of the image to display is in the URL as well as the path to the servlet. The servlet will therefore need to extract the image name from the url and call the database. -
How to use standard tags in JSP
Hi all,
Just wanted to know how to use standard tags of endeca in JSP ... say for example to display Dimension Name using standard tags.
Thanks
--Sami was just checking whether we can use endeca TAG'S ( typo mistake in my earlier post not the JSTL standard library )....in my JSP
We cannot use endeca TAG ...as they are for different purpose.
Sameer
Maybe you are looking for
-
Upgrading bi publisher server error (10g to 11g)
Hi All, We have installed OBIEE 11g (11.1.1.6). After installing we have upgraded bi publisher repository from 10g to 11g. Stopped managed server while upgrading. Upgradation was successful. But the managed server is starting in Admin mode. So unable
-
Junior/Entry Level Integration/Software Engineer Position
Junior/Entry Level Integration/Software Engineer Position We have an immediate need for innovative, results-oriented people that desire a challenging, fast-paced environment in which to apply their skills. The ideal candidate is highly motivated and
-
please help Have just got my first Ipod. when I try transfering play list to my Ipod I get this message 'The Ipod FM cannot be updated. The required file cannot be found'.
-
How to set different color for items in selectManyCheckbox
hi, I would like to change item text background color for each item on selectManyCheckbox (different for each item). It is only 5 items so that could be static reference or select. I know only how to change background for all items af|selectManyCheck
-
TS3989 how do I get photos from my "camera roll" to photo stream and icloud?
I just set up my i cloud account and can not get my photos over to my pc