visual-devel Mailing List for visual (Page 3)
Status: Alpha
Brought to you by:
lettoz
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(4) |
Aug
|
Sep
|
Oct
(5) |
Nov
(17) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
|
Feb
(2) |
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2004 |
Jan
|
Feb
(6) |
Mar
|
Apr
(2) |
May
(6) |
Jun
(2) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Thomas H. <Tho...@we...> - 2002-10-16 15:01:03
|
Hello, Juan Carlos >..problem with my outgoing mail, Did you receive my answer to your NO. Please send again. >The main points where: >I was discouraged So were others. I'm working on a release that uses autoconf and friends. But I still have to learn how to handle them. >TURBOVISION Open Source? Yes. >Where can I get Unfortunately, there are at least two versions on the net: 1. rhtvision, which is on sourceforge. But I never tried this 2. The version which came with SuSE 7.2 is what I used. But, I noticed that it seems no longer to be in 8.0. it is available from SuSE's mirrors. Example: ftp://ftp.uni-bremen.de/pub/mirrors/suse/7.2/suse/d3/tvision.rpm To avoid trouble with this, I try the following: I copied TURBOVISION sources into a subdirectory of my package. Then, I threw out everything I do not need. This means two thirds. I know, that's not what shared libraries where invented for. But on the other hand, now it works in xterm ansd over telnet, which it didn't before, but I never had the time to find out why. And, AFAI can tell from feedback I got, most people don't use other programs with TURBOVISION, I think it's a way to go. Another obstacle reported by other people: I prefer to use a C++ library that came also with SuSE 7.2. When other people complained about not having/finding it, I looked up SuSE's description. Here is what they say: >>Description : >>This package contains two libraries, libg++ and libstdc++, and their >>respective headers. >>Libg++ is the original C++ class library of the GNU project and came into >>life long before thre C++ library was standardised. Because of this it >>should not be used for new projects. It's only included for older packages >>that might need it. >>Libstdc++ ist the current C++ library of the GNU C++ compiler. While it is >>much closer to the standard, it is far from being complete. Sorry for using an old and non-standard library. But when I tried both libraries, libg++ gives only 75% of the stripped code size that libstdc++ produces. And I keep in mind that VISUAL could be used on embedded systems. There is a #define use_string_2 in the Makefiles. If you undefine it, it will use string support from libstdc++ and not need libg++. May be this should better be an option to configure. The problem is, that I do new source code and most testing with libg++. So, without it some code might not work or have more bugs. >The next point >- I agreed to your request of putting my mail and your answer in the >VISUAL lists. (In fact in my answer I agreed that you include the whole >thread) Thanks. >Regards, > Juan Carlos Orozco > Director >ACElab Industrial Automation >www.ace-lab.com Regards Thomas ________________________________________________________________ Keine verlorenen Lotto-Quittungen, keine vergessenen Gewinne mehr! Beim WEB.DE Lottoservice: http://tippen2.web.de/?x=13 |
From: Thomas H. <Tho...@we...> - 2002-10-16 14:59:13
|
Juan Carlos Orozco <jo...@ac...> schrieb am 16.10.02 16:18:24: > I had a problem with my outgoing mail, Did you receive my answer to your > mail? If not please let me know. > > The main points where: > > - I asked for help to compile the VISUAL server side. I was discouraged > by the multiple references to a specific SUSE directory in the Makefile. > But I guess I could try to create this directory with a link to where > the files actually reside. Is TURBOVISION Open Source? Where can I get > it, so I can try VISION in its full glory. > > - I agreed to your request of putting my mail and your answer in the > VISUAL lists. (In fact in my answer I agreed that you include the whole > thread) > > - I also thank you for your explanations. > > Regards, > > Juan Carlos Orozco > Director > > ACElab Industrial Automation > www.ace-lab.com > > On Thu, 2002-10-10 at 16:57, Thomas Hergenhahn wrote: > > Hello Juan Carlos, > > > I am a software developer from Mexico I work for www.ace-lab.com. I am > > > also a developer for the mat.sf.net (MATplc) open source project. I > > I know and I saw your homepage and the oven demo you did for mat.plc. > > > Is there a mailing list for this project? > > Yes, vis...@li..., but the few 4? mails are from myself. > > Other people mailed me privately, and I never found this of so much public > > interest, that I asked them to usse the mailing list. > > > > > > Well anyway, while testing the visual hmi code I found a couple of bugs > > > and corrected them. Remember I am using the hmi without your server > > > (turbovision) > > I fear you are confusing two things here: > > 1.turbovision is a library to make window/menu based user interfaces > > with semigraphics on text consoles. > > 2. VISUAL is an application to communicte with PLCs, to store longtime data, > > settings and alarm events. It serves the data to the hmi applet(s). > > >...so what is a bug for me may not be a bug at all. > > Yes, and if you plan to use it with another server please download latest > > sources from CVS directory /designer. > > Another person had the idea to connect driectly to a Siemens CP 343-IT (A web > > server to be but into the PLC rack). I took out all the communication stuff > > from hmiViewer.jave and transferred it into hmiVisualCI.java. Now you pass a > > parameter to your applet telling it, what communication interface to use. > > > > > > In file [Source Forge]/visual/designer/hmiViewer.java (1.8) at the > > > mouseClicked method in line 215 > > > > > >... It looks to me like the first widget is not taken into account for > > > events. > > Think you are right. Thank you. > > > > > > In file [Source Forge]/visual/designer/hmiVisualCI.java (1.1) at the > > > getValTab method in line 214 > > > > > > original: String Value=sb.toString().substring(smark+2,mark); > > > > > > my change: String Value=sb.toString().substring(smark+1,mark); > > > > > I think you will not need this. On the other hand, it , as far as I > > know, this is well tested with my server. > > > Comment: This may be because my server returns "key=val" I am not sure > > > how does the > > >turbovision... > > no, VISUAL > > >... absolute key,val pair looks like in the socket > > > communication. > > A1= 1.234<nl>( A space after the equal sign, the number and a newline > > (char(10)) ) > > > > > > One last question. For your trend implementation > > VISUAL > > >is going to > > > save the historic data? > > Yes and no. There are two types of trends to choose from: > > On the fake demo page you find a little trend window. This will NOT store > > data permanently. It is meant to provide a (slow) oscilloscope style tool. > > Different from the demo, the applet will directtly after page changes show > > the coplete curve. > > The other thing is a long term trend applet. This uses data recorded to the > > hard disk. As far as I remeber, there is a demo for this on the home page > > too. Try to click on the temperature. > > > > In both cases, threemodules are involved. > > For the short time (oscilloscope style) version: > > 1. The module mod_trend.so, which is a plug-in to the main programm. It is > > configured to listen to one or more variables and for a number of > > (time.value) poinnts. On start, it registers itself with the main application > > and allocates memory for the points. From then, it is called when value > > changes and stores a point to a ring buffer in RAM. > > 2. The widget. On start, it tells the server "getTrendData <varname>,0". > > The zero means all data newer then zero time, which is ALL. > > In consecutive calls it says "getTrendData <varname>,<lastTimeStamp". > > 3. The server, which is a plug-in to the main programm. You would need > > server3.so for this. When it receives the "getTrendData" request, it checks > > the data in the ring buffer and delivers everything newer than the given > > timestamp. > > > > For the long time (paper recorder style) version: > > 1. One of the modules log_bin.so, log_text.so or log_mysql.so, which are > > plug-ins to the main programm. They are configured to listen to one or more > > variables. On start, any of them registers itself with the main application > > and creates a file(s) for the data, if it/they don't yet exist. From then, it > > is called when value changes and it stores a/more value(s) to the file. > > 2. The trend applet. It expects the values as parameters and some other > > parameters like number of points or variable names, display modes, etc. > > 3. A php script or a CGI program. This provides the HTML code the Applet is > > embedded in. It inserts the parameter lines for time and value after > > extracting them from binary files, text files or a database.. > > > > Since I am not using your server I need to > > > understand how to use the historic data from my server in the visual > > > hmi. Could you tell me where exactly is your code requesting for the > > > historical data from the server, so I can implement this on my server? > > I would not do that (implementing my exact protocol). For the long time (disk > > based recording, it is unnecessary. > > It may be changed to tranport also status information (e.g. when a value is > > unknown due to PLC communication problems) in future. > > For the short time version, the way I recommend you is to implement a class > > hmiJCOsCI or hmiMatPLCCi or how you may choose to call it. This may implement > > any protocol you like. The only guidelines I recommend for this is that the > > server should honour the timestamp. > > See the classes hmiCommunicationInterface.java and hmiXXXCi.java > > > > Regards, > > > > Thomas Hergenhahn > > > > PS: Would you please agree that I send this and your original mail to the > > list? > > ________________________________________________________________ Keine verlorenen Lotto-Quittungen, keine vergessenen Gewinne mehr! Beim WEB.DE Lottoservice: http://tippen2.web.de/?x=13 |
From: Thomas H. <Tho...@we...> - 2002-10-16 14:58:32
|
-----Urspr=FCngliche Nachricht (HTML) wurde als Anlage beigef=FCgt.----- Von: "Juan Carlos Orozco" <jo...@ac...> Gesendet: 10.10.02 21:57:55 An: "Thomas Hergenhahn" <Tho...@we...> Betreff: Fwd: VISUAL SCADA comments... =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F Keine verlorenen Lotto-Quittungen, keine vergessenen Gewinne mehr!=20 Beim WEB.DE Lottoservice: http://tippen2.web.de/=3Fx=3D13 |
From: Thomas H. <Tho...@we...> - 2002-07-22 13:25:17
|
Hi Mark, sorry for sending you first a half ready mail. But I did it with web.de's web interface. My login timed out and when logging in again, I seemed to complete the text. Later, I noticed that I sent a version I saved in the middle and lost the rest. On Sunday 21 July 2002 16:56, you wrote: > > Cool! Let us know if you have something that works. > (screenshots would be nice :) 1. My difficulty with that: How do I take a screenshot from the framebuffer screen? 2. What I do is maybe completely uncool and against the concept of JAVA ? :-( Let me explain what I try do and what purpose I want it for: I've a project where I use applets to monitor and operate industrial machinery over a network. The applet shows a so called HMI (human machine interface) screen resembling a control panel. It consists of a background drawing and some elements which show values or which can modify values. The applet is allways the same for every screen or page. A specific page layout is then defined in the applets parameter lines. To use different types of "GUI" elements, these elements are defined in separate classes and serve as a kind of plugin for the applet. Now I can display the HMI screen in a browser. Snapshots of this are available from my project's home page on: http://visual.sourceforge.net Now, my next goal is to show them on a local computer in or near the machine. Such a computer might be some embedded system, which has not enough resources to show an applet in a browser on top of X11. Further, when such a device serves as a machines control panel only, I don't want a windowed view. The operator shall always see the essential things. So I want to show it on the framebuffer display in full screen mode. Were it only this, I could write a C or C++ application that interprets the parameter lines as the applet would and show the page. But I also want that users can create new plugin classes for new HMI/GUI elements according to their needs. For example, I've built an application where an HMI screen shows results from a diameter measurement. Some round product comes out of a machine and diameter is measured under four different angles. I created a special element that takes the four values and computes an interpolated contour function and display the approximated more or less round outline. Such a new element can easily be created be deriving it form hmiElement base class. Then, it works with the hmiViewer applet in the browser. But I want to reuse this code unchanged in the local viewer application. For this, I need a JAVA VM. I tried to do this with Kaffe. But then I noticed that gcc.3.x.x can compile JAVA to machine code. Thus, I do not need a JIT compiler and I can compile in the necessary classes from the library, resulting in total control over code size. I did not implement the AWT for this. No toolkit, no peers. Instead, I implemented the basic drawing functions as native methods of my java.awt.Graphics class. As I do not need neither conventional GUI elements (like checkboxes or scrollbars) nor windows, I can do without most components. Only java.awt.component, java.awt.container and java.awt.panel are there. Further I "crippled" the library classes in java.io,java.lang,java.util reducing them to the absolute minimum needed for my purpose. I can do without much of exceptions, tests and stack tracing supposing that elements are tested and debugged using other (SUN's, Kaffe's) tools and appletviewer. I can further do without properties,locales,security,reflection API and most of the Unicode/charset converting stuff. Sorry if this was a bit lengthy. I tried to point out, that this work is not too useful for the general public. It will be available from the above stated address as soon as I manage to fix some bugs with mouse cursors, mouseless mode, key events and page change via showDocument. Currently, it would present more a source of frustration to those willing to try it out. > > Note though that the Kaffe AWT implementation is under the GPL, not > under the GPL+exception statement as used by Classpath. > I do not know the exception I guess it may allow to use Classpath with non GPL'ed software also similar to LGPL. My project is under GPL, so I assume I may use any GPL'ed code in it. I'm not a lawyer nor did I spent much thought about licenses, but I suppose GPL is also good enough for users of my project which may want to create applications for their machinery using my tools and runtime executables but want to keep their work proprietary. This should be the same as writinga text with a GPL'ed editor or writing a shell script for bash: Neither the text nor the script need to be put under GPL or published. If, on the other hand, somebody improves or extends my code, I should like to see him share his work with me and the community. Please tell me, if I missed something. Salutations Thomas ______________________________________________________________________________ WEB.DE MyPage - Ultimatives Kommunikationstool! Ihre Message sofort online! Domain aenderbar! http://www.das.ist.aber.ne.lustige.sache.ms/ |
From: Thomas H. <Tho...@we...> - 2002-07-22 12:06:55
|
"Thomas Hergenhahn" <Tho...@we...> schrieb am 22.07.02 14:04:26: > "Thomas Hergenhahn" <Tho...@we...> schrieb am 22.07.02 12:41:20: > > Mark Wielaard <ma...@kl...> schrieb am 22.07.02 01:27:44: > > Hi Mark, > > > > > > On Sunday 21 July 2002 16:56, you wrote: > > > > > > Cool! Let us know if you have something that works. > > > (screenshots would be nice :) > > 1. My difficulty with that: How do I take a screeshot from the framebuffer screen? > > 2. What I do is maybe completetely uncool and against the concept of JAVA ? :-( > > Let me explain what I try do and what purpose I want it for: > > I've a project where I use applets to monitor and operate industrial machinery over a network. > > The applet shows a so called HMI (human machine interface) screen resemling a control panel. > > It consists of a background drawing and some elements which show values or which can modify > > values. The applet is allways the same for every screen or page. A specific page layout is then > > defined in the applets parameter lines. To use different types of "GUI" elements, these elements > > are defined in separate classes and serve as a kind of plugin for the applet. > > Now I can display the HMI screen in a browser. > > Snapshots of this are available from my project's home page on: > > http://visual.sourceforge.net > > Now, my next goal is to show them on a local computer in or near the machine. Such a computer > > might be some embedded system, which has not enough resources to show an applet in a > > browser on top of X11. Further, when such a device serves as a machines control panel only, I > > don't want a windowed view. The operator shall allways see the essential things. So I want to > > show it on the framebuffer display in full screen mode. > > Were it only this, I could write a C or C++ application that interprets the parameter lines as the > > applet would and show the page. > > But I also want that users can create new plugin classes for new HMI/GUI elements according > > to their needs. I, for example, have built an application where an HMI screen shows results from > > a diameter measurement. Some round product comes out of a machine and diameter is > > measured under four different angles. Now, I've a special element, that takes the four values and > > computes and interploted contour function, which in turn is used to display the approximated > > more or less round outline. > > Such a new element can easily be created be deriving it form hmiElement base class. > > Then, it works with the hmiViewer applet in the > > > Note though that the Kaffe AWT implementation is under the GPL, not > > > under the GPL+exception statement as used by Classpath. > > > > > > > Sorry if there was aa attachmanent with strtod code/diff. I posted this in > > > > April when I found that a String of the form 12.3E000 is NOT converted as it > > > > should. > > > > > > OK, found that message in the archives. Just checked that the problem > > > was already solved. And it seems to be. With gcj 3.0.4 the following > > > program prints 0.0 for both cases. But with a recent Classpath (and > > > Kissme) or gcj 3.1 it correctly prints 12.3 twice. > > > > > > public class D { > > > public static void main(String[] args) > > > { > > > double d = new Double("12.3E000").doubleValue(); > > > System.out.println(d); > > > d = new Double("12.3E+000").doubleValue(); > > > System.out.println(d); > > > } > > > } > > > > > > Cheers, > > > > > > Mark > > > > > ______________________________________________________________________________ FreeMail in der Premiumversion! Mit mehr Speicher, mehr Leistung, mehr Erlebnis und mehr Praemie. Jetzt unter http://club.web.de/?mc=021105 |
From: Thomas H. <Tho...@we...> - 2002-07-12 22:22:06
|
On Friday 12 July 2002 21:35, you wrote: > I'm curious as to why you think a spreadsheet is a good thing for > an application such as this. The problem I have with spreadsheets > is that they're mostly flat architectures. Sorry, english is not my native language. So I try to interpret flat here: If I get the point of it, you say that a spreadsheet has only two dimensions which may provide a means to organize the data. But isn't that basically true for databases where you have tables consisting of columns and rows? And then you are forced to use the columns for "properties" and the rows for "instances" of the "objects" you try to store. Ok, you usually have more then one table with databases. You can have multiple spreadsheets with VISUAL. They do not by themselves reflect the structure of what you store in them. But you are free to use either text cells or labels to annotate what data goes where. I see the advantage of the spreadsheet in the fact that the calculations are stored with or near the data. A databse would be a passive storage and you would need a second thing where you program calculations, again with either copy and paste and adjusting addresses or with a sort of array calculation. Maybe, I missed something here... > I've integrated and built flat SCADA systems and I can testify to > the problems one can get in to with them. Our staff engineers > used to lose track of the point I/O list has due to the sheer > size of our system and lack of any features to help him organize > a morass of information this large... > Might I suggest a hierarchical database layer as well? I realize > this is a structural issue, but it doesn't have to be that scary. > > The advantage to a hierarchical database is that similar point > structures can be templated and copied easily. Thus an elevated > water tank, for example, could have a base altitude, a tank height, > a water column height, and a volume all within the same template. > We have over 50 such storage tanks. Yes, and with VISUAL I would do it this way: Implement all you need for a single water tank in one spread sheet. 1.You need to create numerical cells for all your input data you get from PLC's or sensors. 2.Set up the PLC or measurement device driver to fetasch the data and store it to these cells. 3. Create the formulas you may need to scale the values to appropriate units or to compare against limits. 4. Create an HMI screen for one tank. Now you have two choices: Solution 1: Either use copy and paste (Area select, area copy in VISUAL's terminology) and copy it some columns to the right 50 times. You would have to copy the TFI list lines (PLC driver instruction list) the same way and adjust the coordinates. This may be somewhat painful when you calculate the column letters. In the HMI screen you have several choices again: To show all tanks on one page (not realistic): Either you copy all the parameter lines of the applet tag and adjust the coordinates. Or , if you get the screens from a PHP enabled web server, you insert variables for cell coordinates and increment them in a loop; To show a tank per page (realistic ?): Either you copy all the parameter lines of the applet tag and adjust the coordinates. Or , if you get the screens from a PHP enabled web server, you shift cell coordinates based on a screen number. This provides me with a new idea:: To give the HMI viewer a set of shift col/shift row parameters. Thank you... Solution 2: You take the resulting file for the spreadsheet (1.sht, if it was the first sheet) and copy it to files 2.sht to 50.sht. Now restart visual. You have 50 sheets, one per tank. Adjusting the TFI list is now a child's game: Copy the lexisting lines 50 times and only adjust the sheet number, which can be done with some shell|perl script as well. With HMI you can reuse the same applet parameter line and modify only the sheet number parameter. This can again be done with a PHP or cgi script. I would use the first solution, if one tank has relatively few variables (you mentioned four, there may be some states and alarms also like "pump defective", "spare pump in use", "tank empty"). If it comes to much more variables, then the second solution is much more appropriate. You can also mix both like 10 sheets of 5 tanks, which would suggest (but not enforce) to display also 5 tanks per page > > I suppose you could claim that a spreadsheet has cut and paste > features too. However, it doesn't organize the data for you all > that well. And when you scale a SCADA system to something the size > of what we use, you can begin to see why this concerns me. > I did an industrial SCADA project for my employer with a software I wrote years before and which is basically like VISUAL (with the same spreadsheet concept). There we have 58 production lines organized in groups of 25 and 33 indentical machines. There is a computer for each group and a central server that holds copies of both groups and other machinery and serves them to intranet. Each machine has about 40 analog and 50 binary variables. So I created a spreadsheet for each group. When it worked for one machine, I copied this 25 or 33 times. For the central server, I took one copy of each sort and replaced all formulas by numerical cells (the server gets the values the group computers calculate). Then I copied the sheets 25 and 33 times again and had what I needed. Pages showing a single machine are served with PHP scripts. PHP inserts the sheet number based on the machine number. There is also an overview page showing the plant floor indicating which machines are running and if there are major faults. This is a single HMI screen taking values from multiple sheets by prefixing coordinates with a sheet number: 1:A5, 2:A5. Now comes in what I consider again an advantage of the spread sheet concept: One of the machines in one group gets modified for some trials. Extra mesuring equipment is attached. Now I simply go to the machine's sheet and insert the extra stuff somewhere. With databases, I would have to change the table layout, which is common to all machines.(or introduce an extra table). Let me add that this could be done while the machine and the SCADA keep running. (Currently not possible with VISUAL, becuse you have to kill and restart the VISUAL, when you change a transfer instruction list, but it's pre-alpha..) > Thanks for reading and I hope to be corresponding with you in the > future... > > Jake Brodsky > Process Control Specialist III > 301-206-7173 |
From: Thomas H. <Tho...@we...> - 2002-07-08 22:26:47
|
I put a lot of documentation(so yet incomplete and maybe buggy) to the homepage see visual.sourceforge.net Thomas |