visual-devel Mailing List for visual (Page 2)
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...> - 2003-03-29 21:48:47
|
On Friday 28 March 2003 14:53, you wrote: Hi, > > I find your project interesting (Visual) and I decided to play around with > it. Would you help me to get started with it? I would, if I could. But when this reply took some time, this is because I first tried to update my system (SuSE 7.2) to gcc 3.2. Sorry, but after having done this, I cannot reproduce any of your problems. > > I encountered following problems when I tried to build it. > Here's what I did: > $ ./configure > Makefile.am: required file `./depcomp' not found > make: *** [Makefile.in] Error 1 My autoconf doesn't seem to require this. I found that some software packages I built from source came with a script named ./depcomp. On the first glance, this hell script may be idependent of the respective project. Please try to copy it from some other source package > > Then I tried "make all" and it went further until it stopped when compiling > allen_b.cc with following message: > > In file included from ../base.h:24, > from ../plcdrv.h:26, > > from allen_b.cc:26: > ../persist.h:106: ISO C++ forbids declaration of `map' with no type > ../persist.h:106: template-id `map<std::string, BaseObject*(*)()>' used as > a declarator > ../persist.h:106: parse error before `;' token > > I'm using GCC 3.2. I fetched myself gcc 3.2 as it comes with SuSE's 8.1. As I do not want to overwrite/uninstall gcc-2.95 , I set up some symlinks to be able to switch between compiler versions changing a single symlink. While doing this, I once got this error message, but I have not been able to reproduce it. Please check version and headers of your libstdc++. Mine is know: filename: libstdc++.5.0.0.so while the package was named: libstdc++-3.2-44.i586.rpm and I can tell that visual compiled and executed ok (at first glance). I only got warnings about a deprecated header file (iostream.h). As you did not report this, if you do not get it, your C++ header files may be out of date. I did NOT try to compile with gcc 3.2 and older libdstdc++ headers. > I tried to make changes in Makefile.am but then I wasn't able to even start > building. make clean; ./configure; make all procedure always ended with > that ./depcomp error. Ok, when Makefile.am is more recent, make tries to remake the Makefile first. So if you want to do changes manually, change Makefile instead. Good luck Thomas |
From: Thomas H. <Tho...@we...> - 2003-02-27 16:33:35
|
Berdanos nicolas <nic...@it...> schrieb am 27.02.03 10:09:23: > > Hello thomas, > > I'm sorry to disturb you but i need some help about visual. > > in the parameters of the code, i 've tried to test some solutions but i don't > say if i must use hmi.class or hmiViewer.class .... Yes, you must use hmiVisual.class. It's the applet. > > <applet code="hmiViewer.class" codebase="javadoc" archive="hmi.jar" width=640 Leave away the codebase or set it to "./". If it is in the example, it's a mistake. I need it on sourceforge demo pages to save some space. > height=480> > <param name="communicator" value="hmiFakeCI"> hmiFakeCI is ok to play with and to test page layouts. If you want real COMMUNICATION, use hmiVisualCI instead. > <param name="host" value="localhost"> > The next parameter lines are of NO INTEREST for hmiFakeCI, but are important for hmiVisualCI: > <param name="host" value="localhost"> > <param name="sheet" value="2"> > <param name="port" value="182"> The port must be the same number that is given to the server module in visual.cfg. 182 is no good choice unless you run the server as root. > <param name="machine" value="oven"> > <param name="rights" value="1"> > <param name="trends" value="../trends/gimmickPage.php"> > <param name="font" value="Helvetica"> > <param name="refresh" value="300"> > > i try to run a demo of visual with the parameters who are explicated on the > web but it don't run. > > The only widgets who i use are in the hmitest.htm > > thanks for your help I could give more advice if you would send me the full text of your hmi page file. You would better the download latest source code from CVS. It's more verbose about errors. If you run it in a browser, open "JAVA Console" to see any error messages. Better do: java PageViewer hmitest.htm or java PageViewer hmitest.htm>myoutfile to save the messages. If you don't have PageViewer (it's in CVS), use SUN's or any other appletviewer. Good luck Thomas ______________________________________________________________________________ Werden Sie kreativ! Jetzt HTML-Mails nicht nur schreiben - nein - GESTALTEN, bei WEB.DE FreeMail! http://freemail.web.de/features/?mc=021141 |
From: Thomas H. <Tho...@we...> - 2003-02-20 15:56:41
|
"Thomas Hergenhahn" <Tho...@we...> schrieb am 20.02.03 16:26:1= 4: > Berdanos nicolas <nic...@it...> schrieb am 20.02.03 14:10:3= 1: > >=20 > Hello Nicholas, > > i'm working on the visual's project (visual-0.0.17)=20 > There may be lots of changes since... > > and i'd like some help=20 > > about how realize a hmi page with some components. For example i'd lik= e to=20 > > integate the hmiTurnSwitch class and i'm not sure of the format of thi= s=20 > > class. > Sorry, I'm not shure myself. Some days ago I wanted to use such a thing = and found the JAVA=20 > code was broken )-:. > When I looked up my bug fixes, I found it still doesn't use the start an= gle parameter. > I fixed this now and send you the new code. I hope it still works with v= ersion 0.0.17. Otherwise > check variable and method names names against parent classes hmiElement = and hmiPoti. > HTH. > >=20 > > value=3D"TurnSwitch, 300,100,50,100,12,8,3,9,16,14,2,1,15,D3,2.000,D6,=20 > The first parameter must be the exact and full clss name, here hmiTurnSw= itch > > 0.000,100.000"> > This is a line I use in one of my designs: > value=3D "hmiTurnSwitch,511,16,50,50,1,15,7,1,15,7,1,15,7,H1,1,3,180,60"> > The parameters are now documented inside the .java file. > >=20 > > could you tell me what tags i must to use. > > thanks for your help. > >=20 > > nicolas berdanos > >=20 > Thomas >=20 >=20 >=20 =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=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F= =5F=5F=5F=5F Viren=3F Wir wissen nicht was Ihr Arzt empfiehlt. Wir empfehlen den Virencheck f=FCr Ihre E-Mail-Anh=E4nge! http://freemail.web.de/features/=3Fmc=3D02= 1159 |
From: Thomas H. <Tho...@we...> - 2002-12-23 00:43:38
|
Hi all, Hi Ruben, Hi Thomas, Hi Michael. I ask everyone who is experimenting with VISUAL to download the latest CVS files, which represent a further step in development. The main change is all PLC drivers and setport.cc. See below for details of these changes. In the previous version I found some carriage returns strayed into the code. My editor didn't show me them and gcc 2.95 on my box did obviously just ignore them, but when one is in a comment starting with "//", it's interpreted as a newline, causing the rest of the comment to be handled as invalid C code. I cleaned up all the files using the script clean.pl, which is now in CVS also. I never gor messages about "no newline at and of file" with my versions of gccc, but I could force it to report them using option -pedantic. I added the newlines. I ask you Ruben, to retry compilation on your mandrake system and you Michael to retry on your system. For Michael: I did not mangae to make configure adapt the Makefile to exclude mysql dependend targets when libmysqlclient or mysql/mysql.h are not found. So I ask you to comment out the log_mysqlx targets in drivers/Makefile.am, please. Thank you in advance for testing. Changes to setport: You may now specify other files then /dev/ttySx to the serial drivers. The purpose of this is to redirect communication to other channels. Currently, this mechanism supports TCP/IP connections and named pipes. Changes to PLC drivers: The drivers now use two distinct file descriptors for read and write operations. Normally, when using serial or TCP connections, the numeric value is identical. The purpose of distinct file descriptors is to make use of named pipes. Named pipes, together with slave driver modules, make it possible to test parts of PLC drivers with out having the real PLC hardware. The slave driver "emulates" the PLC using spreadsheet locations instead of the PLC's memory. A pair of named pipes is used to transport the driver's output to the slave driver and the slave driver's output back to the driver's input. Examples for such a configurations are in omron.cfg: driver allen_b.so fifos abpipe1 abpipe2 driver allen_b_slave fifos abpipe2 abpipe1 Another application of slave drivers could be to integrate VISUAL into a network of PLCs controlled by another master. I have set up one configuration where another comercial SCADA read values from an Allen Bradley PLC. I disconnected the other coputer running this application from the PLC. Then I connectes a machine running VISUAL. I let VISUAL read the values I need and the values the other application needs. Then I connected the other computer to the computer running VISUAL via another serial port. I configured the allen_b_slave.so to deliver the values read by VISUAL to the other application. Works fine. Another possible application (not yet tested) of the slave drivers is to let a PLC program read values from VISUAL on demand. Now comes another applicaion case for serial port redirection: Two programs have been added to VISUAL: serialProxy and serialClient. These provide a (not so comfortable) way for remote programming and maintenance of PLCs. Suppose you have an installation where a local computer runs VISUAL. You are in your office and you can establish a TCP/IP connection to this machine. Now you can run serialProxy on the remote machine. To develop an application with VISUAL on your local machine, you can tell the PLC driver to use a TCP/IP connection to the remote machine instead of a serial port. This enables you to work with VISUAL as if the PLC is connected to your office machine. Another possibility is to run the program serialClient on your office PC. Now you can connect another computer in your office running the PLC's programming software to the first computer's serial port. SerialClient will take all characters from the serial port, forward it over TCP/IP to the remote machine, where serialProxy will output it on the serial port to the PLC and vice versa. I'm able to remote program a Siemens S7 315 with STEP7 over my Company's intranet in this manner. To use serialProxy, start it with a port number to listen and the serial port and parameters you would use for your PLC, e.g.: serialProxy port=11777 '/dev/ttyS1 9600 e 8 1' Note that you need the single quotes. To use serialClient, start it with a host address and port number to connect to and the serial port and parameters you would use for your PLC, e.g.: serialClient 192.168.11.1:11777 '/dev/ttyS0 9600 e 8 1' Thomas |
From: Thomas H. <Tho...@we...> - 2002-12-18 09:32:40
|
"Chaffin, Michael" <MCh...@it...> schrieb am 18.12.02 00:22:12: > Um... I don't mean to be dense, but I am having problems building visual. > Can you please help me ? Sorry, I tested the release with gcc 2.95 and gcc 3.0.4., but I think there are 3 kinds of problems still existing: 1. The no "new line..." are mere warnings, but I didn't get them, so it's not so easy to know where they occur. 2. Others reported that they got real syntax errors with bcc 2.96 3. MySQL > So, I am assuming that I need the mysql development library some where? What > version? Mine, on this box is 3.23.37, but I do not think that this is mandatory. >Why didn't the './configure' catch that? This was my first trial with autoconf and I have been glad to get it work somehow. For the moment, if you don't want to install mysql or for a first trial, please comment out the mysql things in drivers/Makefile.am > > Thank you for your time > Thank you for the feedback. I think this is the only way to get the stuff to work on different systems and distros. Thomas ______________________________________________________________________________ ASCII-Bilder und SMS-Spruche bei WEB.DE FreeMail - auswahlen, einfugen und versenden! http://freemail.web.de/features/?mc=021168 |
From: Thomas H. <Tho...@we...> - 2002-12-14 16:44:11
|
As some users reported difficulties with newer Versions of gcc, I revised the sources. They can now be compiled with gcc 3.0.4 on my box. Thomas |
From: Thomas H. <Tho...@we...> - 2002-11-27 12:06:26
|
Hola Ruben, aqui la version mas reciente del controlador en cual he corrigido (lo espero) el error con la reouesta para el commando de escritura. Saludos Thomas |
From: Thomas H. <Tho...@we...> - 2002-11-26 20:26:06
|
> Thomas, > > I don't like implementing a pushbutton's I/O debounce behavior in the > HMI. If an output is a momentary command, I feel its momentariness > should be implemented in the PLC. I do not think so. With the mechnical button the widget tries to replace, the momentariness is in the spring, hence outside the PLC. That can be done, as I did point out in a former mail. The drawback is that the programmer of the PLC must be aware of programming for interoperation with a or this specific HMI. (Personally, I more often modified or enhanced existing machinery then designing from scratch.) > > The HMI can simply write a 1 to the output point when the button is > clicked, and assume (if the HMI cares at all) that it will reset to 0. It can still be done in the PLC. Use a switch widget. It would only write the one. Bind a read and a write command for the PLC driver to that variable and reset it in the PLC. One extra point: If used with VISUAL, the PLC drivers read and write to the PLC without synchronization to program execution. Hence if you write to some flag between evaluation and reset, no action will be taken. So you need one more flag. In PLC program do: read the flag the HMI acts on. copy to another flag. reset the flag the HMI acts on. perform any actions depending on the copy. next cycles' copying resets the copy. > > If the HMI needs to know whether the command was effective or not, there It doesn't really NEED to know. Usually, in my designs the button changes color when the corresponding variable is nonzero, providing a visual feedback that the state is "pressed". When for whatever reason (cut the cable) a reset doesn't take place it remains so. This is a perfect analogy to a mechanical button that gets stuck. > should be some other point (or points) in the PLC to feed back the > current status of whatever circuit was affected. "Some point" means extra programming in the PLC. I do not see what it would be good for. It only has to be done. > > I see other benefits, particularly in the area of permitting more > sophisticated PLC handling of the command: preventing multiple commands > within too short a period of time (regardless of the source), generating > an alarm if the command doesn't have the desired effect within some > (possibly configurable) timeout, etc Ok, this is useful if and only if it would be useful with the mechanical button also. Examples: a lamp as feedback for "on", delay of an input to prevent a counter from counting multiple events. There may even be cases where you would introduce a timer for the input from a mechanical pushbutton to give an alarm if someone fell asleep with his head on it.... As I mentioned above, users are completely free to use a hmiSwitch widget instead of the specialized hmiPushButton. With VISUAL, read and write instructions for the PLC driver targeting the same coordinate would be necessary. With matPLC, I'm not sure whether this could be specified. Order of execution: read from PLC: result zero read from PLC: result zero Press button write to PLC. PLC has a one. read from PLC: result one, button color changes (if parametrized so) read from PLC: result zero if PLC has yet taken action. To summarize: I like to simulate the behaviour of the simulated things (pushbuttons) as closely as possible. And I like PLC programmers to use their usual style and methods. I hope people will regard this as "natural". Regards, Thomas |
From: Thomas H. <Tho...@we...> - 2002-11-26 00:16:50
|
On Monday 25 November 2002 18:33, you wrote: > Good news! > > The module to communicate MATplc with hmiViewer from the VISUAL project > is now on the cvs: mat/scada/visualview/hmiViewerServer.py > > Some comments about the module, I already tested it and it works, but it > still has some issues to solve. I am assuming that all points are floats > (the module has no way of checking the type of type of each point). Another one may be the support for hmiPushButton widgets. There may be ways to avoid their use, but in many cases they simlify things. Let's consider you want to start/stop an elevator. You would want to set/reset an "on" flag with a start and a stop button, so you can reset it also in the control program when reaching the final position. Hence it is necessary to transmit a volatile "on" signal long as the button is pressed. In VISUAL, this is done in cooperation between server and PLC driver. The hmit uses a special call named "tset". Tset puts a 1.0 to the variable. Tset marks the variable saying this is from a pushbutton. The PLC driver is called because variable has changed. The PLC driver transmits the value 1 to the PLC. The PLC driver, seeing it is marked as "from a pushbutton", sets the value to 0.0 and marks it as "ackknowledge for a pushbutton". In the next cycle, the PLC driver is called because variable has changed again. The PLC driver transmits the value 0 to the PLC. These are possible solutions that come upon my mind: First, in the communication interface: It can transmit a 1 first and mark the variable internally. When it reads values next time, it looks whether the value is already 1. If so, it issues a nother write to set it back to zero. If the zero is read back, it removes the mark. I use this method in the modbus communication interface. It is in CVS (hmiModbusCI.java). Possible dangers: 1.The one might be read back but might not yet have been processed by the PLC. In this case the operator would probably press the button again, until the machine reacts. 2.The client/server connection may break before the zero has been sent. This is more dangerous. In the elevator example, it must be made sure that reset wins over set or the elevator will not stop in final position. On the other hand, this is also true for a mechanical button that gets stuck... Second, in the (mat)PLC control program. You could implement the "tset" command in your server like the set command and every control program must be written to reset the button states after processing them. Possible dangers: none Drawbacks: Who does a control program must be aware of this. Third: In your server. The "tset" command sets the variable like "set" would. Then it should remember that there is something more to do for this variable/point. After at least one complete cycle of the control program, the server should set it back to 0. The server should reset these variables also, if the connection is interrupted unexpectedly, thus avoiding buttons getting "stuck". > > the rest. The only requirement is that the points are defined in the > MATplc configuration file, if this is not the case then the points will > only exist (including their value) in the hmiViewerServer and the > hmiViewer will be able to read and write them The intended reaction for a nonexisting variable is that the server sends some question marks. Different strings of 1 to 3 or four question marks are interpreted as different error conditions. 3 "???" means that the variable doesn't exist. Any widget will show the variable name white on red ground instead of it's normal appearence. 2 Question marks "??" mean that a value is uncertain. This may not be meaningfull for matPLC. In VISUAL, it usually means that the value could not be updated because of PLC communication errors. The widgets will show the question marks white on red ground in this case. A last hint: In VISUAL and hmiViewer, all values are doubles. This ensures that when 32bit values are tranproted over the net and converted back, all bits are correct, which is not so with float. This is currently a concern when using variable color values according to the 24bit RGB model (by binding 4th to 13th widget parameter to a variable). In the future, there may be other widgets that interpret a value as an assembly of up to 32 bits, e.g. to show input/output states. Thomas |
From: Thomas H. <Tho...@we...> - 2002-11-18 10:45:35
|
Rub=E9n=5FG=F3mez=5FAntol=ED <mix...@ja...> schrieb am 18.11.02 10:15:16: > Good Morning Thomas, >=20 > we have new, and good, notices, visual communicates with AB. We have=20 > realized test for n9 files and visual read state of potenciometer which=20 > we attach to a n9:0 and n9:1. >=20 >=20 >=20 > -------- Original Message -------- > Subject: Visual: Allen-Bradley communication driver test > Date: Fri, 15 Nov 2002 16:13:05 +0100 > From: Thomas Hergenhahn <Tho...@we...> > Organization: http://freemail.web.de/ > To: "Rub=E9n=5FG=F3mez=5FAntol=ED" <mix...@ja...> >=20 >=20 >=20 > >Hi Rub=E9n, > > > >I tried to find further information about Micrologis an communication a= nd error states from the=20 > >internet. I found a document, which seems to tell that Micrologix 1500 = uses the file N9 for=20 > >communication and NOT N7 as the Micrologix 1000 does. > >I do not speak russian, but I think I can guess this from a footnote. > > >=20 > =A1Oh, yes! We have read it last day, but i forgotten say you, by this we = can test for 9 in ab.tfi, but certainly n9 file don't initialized, because= we can't read anything. >=20 >=20 > >When I open a new project in RXLogix and choose your PLC, there is no f= ile N) but I can create=20 > >one. Please try to create one and repeat the tests. > >To create a new data file I do (in enlish version of RSLogix): > >In the file list I click on "Data Files" in the File Tree. > >A Menu opens, offering the Entry "New". > >I select new. > >A dialog box appears, where you can chose the File number. Set to 9. > >Below you can select the type. Chosse "Integer" please. > >The fifth line has an input field for the number of elements. Set it to= 100. > >Press ok. > >There should be a new data file now. > >I do not know well how to bring it to the PLC. Either find it out or cr= eate the file while online. > > >=20 > All ok, we was follow all step, and all is fine. >=20 >=20 > >If the file is in the PLC, test again with VISUAL. Use the the same 4 l= ines a.tfi. > > >=20 > I send you output and a capture how you can see it in action :-DD >=20 > >Saludos and a nice weekend in Madrid. > > > >Thomas >=20 >=20 > =A1Oh! Congress was wonderfull, but weather... It was rain all saturday,=20 > and has very cold, thank god that we was in a university building ^=5F^ >=20 > Well, now we can start test to communicate with HMI. >=20 > Thanks for all, Thomas. >=20 > Un saludo. >=20 > R. Gomez. >=20 > --=20 > Libertad es poder elegir en cualquier momento. Ahora yo eligo GNU/Linux,= > para no atar mis manos con las cadenas del soft propietario. >=20 >=20 =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 Viren=3F Wir wissen nicht was Ihr Arzt empfiehlt. Wir empfehlen den Virencheck f=FCr Dateianh=E4nge! http://freemail.web.de/features/=3Fmc=3D021159 |
From: Thomas H. <Tho...@we...> - 2002-11-18 10:41:26
|
Hello Mario, > Thomas Hergenhahn wrote: > > ...connection. Keeping the connection would be better with VISUAL.I tr= ied to set > > it to false, but the modbus module opens a new connection for each tra= nsfer. > >=20 >=20 >=20 > Strange! I'll have to check on why it is doing that! > Either we have a bug in our modbus module, or else it is not receiving > the response packet from the slave, and assumes that the connection has > an error. In that case, the modbus spec. says we should close the > connection and start up another! Oops, this may be my fault. I must check whether I give a correct answer. >=20 >=20 > (...) > >=20 > > 2. 32 bit and floating point: > > I tried to get values from the oven demo. I inserted into the maPLC.c= onf: > > map out digital=5FIO.out=5Fword.1 TFTemp > > In principle I get some number, but in a 2 bytes (word) message. Is th= ere a > > way in modbus protocol. > > a) to transmit a 32 bit value=3F >=20 > It should be transmitting all 32 bits of the float. Yet another issue I= > will have to check out. There is a notice in the source about currently supporting only 1 word tra= nsfers with function=20 code 16. I wrote some extensions and can transfer float now (without type informati= on) >=20 > > b) to transmit the type float=3F >=20 > I don't think so. Modbus has no concept of variable types. What we > should/are doing is casting the 32 bit float onto a unsigned 32 bit > integer, and sending that integer instead! Ok, this is what I do at the moment, sending the 4 bytes which make up a f= loat as two words.=20 Only that the manual confuses me about endianess and which byte should go = where. Wish I had a real world modbus conform device to test what IT does. >=20 > Yep, this is intentional. It seems that this is the modbus way of doing= > things. It got me confused too at the beginning. Somebody convinced me > that this is how it should be. If you can convince me otherwise, it is > trivial to change it once again! Ok, I RTFSpecification and found it is said to be this way. Cheers, Thomas =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 Viren=3F Wir wissen nicht was Ihr Arzt empfiehlt. Wir empfehlen den Virencheck f=FCr Dateianh=E4nge! http://freemail.web.de/features/=3Fmc=3D021159 |
From: Juan C. O. <jo...@ac...> - 2002-11-13 20:30:19
|
On Wed, 2002-11-13 at 14:08, Thomas Hergenhahn wrote: > Juan Carlos Orozco <jo...@ac...> schrieb am 13.11.02 20:56:18: > > On Tue, 2002-11-12 at 15:25, Thomas Hergenhahn wrote: > > > Hola Juan Carlos, > > > > Do you mind asking this to the list, or if you prefer I could ask this > > for you. At the moment I don't know what is the problem. I do remember > > that the code was broken some days ago, but then again it could be > > something else. > I had a look to the list some hours before and something was said about this problem, but I did > not read thoroughly. I will try again when it's fixed. The code is now fixed it was just a couple of days. I don't even remember what was broken. Does anyone know what is happening with Thomas MATplc compile attempts. I am placing here some relevant information. Thomas wrote: > Juan Carlos wrote: >> I understand you are using SUSE, >Yes. >> ...Try downloading the cvs and then change to the dir >> mat/demo/basic, type make >I did one or two weeks ago. >> and when done (without errors)... >That's the point. Never came so far... > >make[2]: Entering directory '/usr/local/mat/lib >make[2]: *** no rule to make taget 'matplc.a'. Stop. Regards, Juan Carlos Orozco Director ACElab Industrial Automation www.ace-lab.com |
From: Thomas H. <Tho...@we...> - 2002-11-13 20:08:58
|
Juan Carlos Orozco <jo...@ac...> schrieb am 13.11.02 20:56:18: > On Tue, 2002-11-12 at 15:25, Thomas Hergenhahn wrote: > > Hola Juan Carlos, >=20 > Do you mind asking this to the list, or if you prefer I could ask this > for you. At the moment I don't know what is the problem. I do remember > that the code was broken some days ago, but then again it could be > something else. I had a look to the list some hours before and something was said about th= is problem, but I did=20 not read thoroughly. I will try again when it's fixed. >=20 > Regards, >=20 > Juan Carlos Orozco > Director >=20 > ACElab Industrial Automation > www.ace-lab.com >=20 Thomas =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 Viren=3F Wir wissen nicht was Ihr Arzt empfiehlt. Wir empfehlen den Virencheck f=FCr Dateianh=E4nge! http://freemail.web.de/features/=3Fmc=3D021159 |
From: Juan C. O. <jo...@ac...> - 2002-11-12 01:25:38
|
Hi all, I have been playing lately with VISUAL (http://visual.sf.net) and MATplc (http://mat.sf.net) to build a life demo for my company ACElab check out the outcome so far, comments are welcome: LIFE DEMO: http://www.ace-lab.com/SCADA/demo.html Regards, Juan Carlos Orozco Director ACElab Industrial Automation http://www.ace-lab.com |
From: <mix...@ja...> - 2002-11-07 13:57:31
|
Hi Thomas, Today, we are working in other things why we can't follow test with=20 visual, only a few dudes about it, Thomas Hergenhahn wrote: >>Well, i aknowlegde that 1.set is for HMI, is it? >> >> =20 >> >I try to explain what exactly is the .set file: >When the spreadsheet is loaded, it is loaded with the numeric cells set = to the values they had=20 >when the sheet was saved the last time. >These values are in the .sht file. >Now you have a potentiometer or other input field attached to A3. >A3 is loaded with value 100 on start. >Now the user sets it to 123 using a potentiometer in an HMI page.=20 >Every numeric cell has a source attribute that says from what type of so= urce the value came from. >When the server executes the set A3 =3D 123" command he sets this attrib= ute to "soSetByHMI". >The applet sets a "modified" flag. >When "modified" is true, the applet sends the command "savesettings" to = the server. >The server, when getting this command, goes threw the spreadsheet and st= ores the values >of all numerical cells that have the attribute "soSetByHMI" to the .set = file. >On start, VISUAL loads the spreadsheet. The cell A3 will be 100 again. >Then it looks for a corresponding .set file, reads it and sets all value= s to what is in the .sht file >Now A3 is 123 again. > =20 > Ok, we understand, .set =ABremember=BB visual for values that user send f= rom=20 HMI. ><ALLENB> 'Nuestra primera prueba' 15 162 137 0 100 20 1 'B1' 'E1' 'A1'=20 ></ALLENB> > =20 > >This should read 20 bytes (10 integers) from file 0, word 100... to B1..= B10 > =20 > >><ALLENB> 'Segunda prueba' 15 162 137 7 200 20 1 'G1' 'E2' 'A1' </ALLENB= > >> =20 >> >This should read 20 bytes (10 integers) from file 7, word 200... to G1..= G10 > Yes, we understand it, a little ;-D , and test it for more bytes, for=20 example, yesterday we put 100 bytes and we saw that visual wanted to=20 write in 50 cells. > =20 > >>There are no difficulties, visuals runs at first time, only a ???despis= t????=20 >> =20 >> >Does it? Icaannot see this from the screenshot, but in your screenshot A= 1 is 0. > No, despist was that i edited line for Siemens S5 driver instead=20 allen-bradley, of course ab and visual don't communicated. >This would mean NOT to execute the transferinstruction. >On the other hand, when I looked into the Allen Bradley driver, it may h= ave a bug as it ignores=20 >the condition...maybe out errors cooperate nicely :-) > Yes, we can see this, but we aren't very sure for this. > =20 > >>Well, i say you that we don't aknowledge this at all, for example we ar= e=20 >>used a counter for N10 but if we charged N10 we don't apreciated some=20 >>changes in values showned by visual. >> =20 >> > >What exactly is N10 in Micrologix? > Well, i say you by memory, N10 was a counter output, but, tomorrow say=20 you better. >What I know from the SLC 50/3, a variable is named like N7:200. >N7 is the file there, the N says it contains integers, 7 is the number o= f the file >and 200 the twohundredth word in this file. >So do you mean N10:0 or N1:0 or Nx:10? >Or is Micrologix different? > >To see whether the communication runs, do a simple test: >In the spreadsheet editor press Alt-E on somecell in B1 to B10. Set the = value to what you like. >It should be overwritten by the value from the PLC the next seconds. > =20 > >>In capture attachment you can see that values for N7 and N0 practically= =20 >>are the same, only changes one cell, any explained? >> >> =20 >> >No. I would need more from the debug outbut. Unfortunately, the lines yo= u copied do not contain=20 >anything from the communication, only the setup phase. > We wanted attach you output, but it was forgotten. I attach you now. > =20 > >>But, we can't understand hardware handshake, we don't know where disabl= ed. >> >> =20 >> >"Hardware handshake" means: The control lines of the serial port (RTS,DT= R,CTS...) are used to=20 >signal to the partner, if a device is redy to receive characters. This w= as useful for slow devices=20 >and is still useful for modems. Modems may need to retransmit a message = more then one time, if=20 >the phone line is bad. In this time they cannot accept new characters. >VISUAL leaves this lines as they are. >LINUX has the command "setserialbits". > Well, i known handshake protocol, we don't understand =ABwhere=BB we can=20 disabled/enabled it. >You can try to use setserialbits to set RTS and DTR to ON before startin= g VISUAL.=20 >But from a quick look into Allen Bradley's documentation I saw that this= can be configured. >You may also try to make a special cable where RTS is connected to CTS a= nd DTR to DSR or=20 >something like this. In this case, the PLC would give itself the "ready = for receive". > =20 > Ok, we think that it must be activated in any configuration file of=20 visual. Otherwise, visual communicates perfectly with allen-bradley. >Please send me some more of the debug output. > =20 > I attach you yesterday test output. >Good luck > >salutations > >Thomas > =20 > Un saludo. R. Gomez --=20 Libertad es poder elegir en cualquier momento. Ahora yo eligo GNU/Linux, para no atar mis manos con las cadenas del soft propietario. |
From: Thomas H. <Tho...@we...> - 2002-11-07 12:41:48
|
Hello Ruben, > >libmysqlclient. Do you have it? > Yes, i have it Ok, I will check what's wrong. > > Well, i aknowlegde that 1.set is for HMI, is it? > I try to explain what exactly is the .set file: When the spreadsheet is loaded, it is loaded with the numeric cells set to the values they had when the sheet was saved the last time. These values are in the .sht file. Now you have a potentiometer or other input field attached to A3. A3 is loaded with value 100 on start. Now the user sets it to 123 using a potentiometer in an HMI page. Every numeric cell has a source attribute that says from what type of source the value came from. When the server executes the set A3 = 123" command he sets this attribute to "soSetByHMI". The applet sets a "modified" flag. When "modified" is true, the applet sends the command "savesettings" to the server. The server, when getting this command, goes threw the spreadsheet and stores the values of all numerical cells that have the attribute "soSetByHMI" to the .set file. On start, VISUAL loads the spreadsheet. The cell A3 will be 100 again. Then it looks for a corresponding .set file, reads it and sets all values to what is in the .sht file Now A3 is 123 again. > > I revised visual output, this is clearly from this: > Yes, it is > > <ALLENB> 'Nuestra primera prueba' 15 162 137 0 100 20 1 'B1' 'E1' 'A1' > </ALLENB> This should read 20 bytes (10 integers) from file 0, word 100... to B1..B10 > <ALLENB> 'Segunda prueba' 15 162 137 7 200 20 1 'G1' 'E2' 'A1' </ALLENB> This should read 20 bytes (10 integers) from file 7, word 200... to G1..G10 > > There are no difficulties, visuals runs at first time, only a ???despist???? Does it? Icaannot see this from the screenshot, but in your screenshot A1 is 0. This would mean NOT to execute the transferinstruction. On the other hand, when I looked into the Allen Bradley driver, it may have a bug as it ignores the condition...maybe out errors cooperate nicely :-) > > Well, i say you that we don't aknowledge this at all, for example we are > used a counter for N10 but if we charged N10 we don't apreciated some > changes in values showned by visual. What exactly is N10 in Micrologix? What I know from the SLC 50/3, a variable is named like N7:200. N7 is the file there, the N says it contains integers, 7 is the number of the file and 200 the twohundredth word in this file. So do you mean N10:0 or N1:0 or Nx:10? Or is Micrologix different? To see whether the communication runs, do a simple test: In the spreadsheet editor press Alt-E on somecell in B1 to B10. Set the value to what you like. It should be overwritten by the value from the PLC the next seconds. > > In capture attachment you can see that values for N7 and N0 practically > are the same, only changes one cell, any explained? > No. I would need more from the debug outbut. Unfortunately, the lines you copied do not contain anything from the communication, only the setup phase. > > But, we can't understand hardware handshake, we don't know where disabled. > "Hardware handshake" means: The control lines of the serial port (RTS,DTR,CTS...) are used to signal to the partner, if a device is redy to receive characters. This was useful for slow devices and is still useful for modems. Modems may need to retransmit a message more then one time, if the phone line is bad. In this time they cannot accept new characters. VISUAL leaves this lines as they are. LINUX has the command "setserialbits". You can try to use setserialbits to set RTS and DTR to ON before starting VISUAL. But from a quick look into Allen Bradley's documentation I saw that this can be configured. You may also try to make a special cable where RTS is connected to CTS and DTR to DSR or something like this. In this case, the PLC would give itself the "ready for receive". Please send me some more of the debug output. Good luck salutations 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-11-07 11:50:16
|
"Juan Carlos Orozco" <jo...@ac...> schrieb am 06.11.02 20:01:56: > One more thing, are you planning to allow the user to write the name of > the cell to which a widget is linked in the kal3 applet (toolbar) of the > visual designer. This field should be an input field of type string so > it will take the cell address or a tag name. Yes, but PLANNING means it has yet to be done. And there should be such input lines for each parameter, not only the main value, because you can bind any numeric parameter to a variable if you replace it with a coordinate (or what your CI, e.g. a matplc CI. accepts as a variable name) Assume you replace the x-position by a cell address, which would let the widget show up at the position given by this cell (useful to show moving parts of a machine). Now let's assume there were input lines and you do your design. First you place an element with the mouse and now you open the input box and change the x-position from 123 to A1. Now the hmiNoCi places a key-value pair (A1,0) into it's internal variable hashtable. The widget will spring to x=0. A first step to a solution is to put the actual value into the hashtable (A1,123). Now lets assume you have assigned a variable A2 to the main value of a digital display. But after doing so you want to see how it looks when maximum is reached and colors change. You replace the "A2" by a number again, adjust the max colors to your likings and change it back to "A2" again. To simplify this work as much as possible I want a dialog for the parameters, which has two input lines and something more: Variable: takes the cell coordinate or other variable definition in case of other CI. Simulated value: A replacement value that is shown in absence of the server and used in design phase. Radiobutton to choose the source of the value during design: 1. Simulated value 2. Internal variable table 3. real server. 1. is the same behaviour as now 2. Gives the user a realistic preview about what happens when connecting more than one widget to the same variable (I do that often with a potentiometer and a digital display. And it is really necessary to make the single elements of a coded switch hmiRollSwitch work together). 3. test with the real world. Maybe the switch for internal or real variable should be global for the page. The real world connection could be achieved this way: A special communication interface hmiDesignCI evaluates the parameter "communicator" and loads the CI as a "slave". If the switch is set to "real world communication" it takes the values from the slave Ci, otherwise it provides values from it's internal table. When the design is saved, the variable names are put on the parameter lines if they exist. Otherwise the numeric value is put there. Now comes up the next difficulty: The user should be able to save the current state of a design to continue at exactly the same point later. Let's assume he replaces a parameter value of 123 by A1. The internal variable A1 would be created in this moment and set to 123 for continuity. Now he saves the design and on the parameter line appears A1 instead of 123. When he reloads this page in designer, there is no information that the simulated value of A1 was 123 in the previous designer session. We could either accept this or we would need an extra file to store the simulated values. Further TODOs: 1. For colors there should be a special dialog or selector. 2.There should be dialogs for "global parameters" i.e parametrs asigned to the page and not to a widget like background file name, refresh rate or server address. 3. Maybe there should be a way to read all parameter lines back from the textarea. > > What I am doing now is to use the designer and then manually changing > this tag. So do I :-) But the first goal of the designer applet was to make it easy to place and size widgets so that they fit to a given background drawing. > > Automatizacion y Control Electronico (ACElab) > Industrial Automation > www.ace-lab.com > ________________________________________________________________ Keine verlorenen Lotto-Quittungen, keine vergessenen Gewinne mehr! Beim WEB.DE Lottoservice: http://tippen2.web.de/?x=13 |
From: <mix...@ja...> - 2002-11-07 00:13:15
|
Hi Thomas, after of all: >and please do send simple text (not html) mails. > >thank you Of course, you must say me after, sorry Thomas. Well, a good notice, visual runs with allen-bradley, we attach you a capture screen. Before, we comment you about some data, but, it is beautiful, do you? :-D Thomas Hergenhahn wrote: >On Tuesday 05 November 2002 13:16, you wrote: >Hello Ruben, > >>visual.cfg.allen.1 we intend enabled logs, but if we intend, visual >>crash, it can't start. > > >Ok, from the output I see that log_mysql cannot find some function from >libmysqlclient. Do you have it? >If so, I will check why this happens. > Yes, i have it razer@Puerto_Lobo:~$ dpkg -l libmysqlclient* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-================================-================================-================================================================================ ii libmysqlclient6 3.22.30-4 mysql database client library ii libmysqlclient6-dev 3.22.30-4 mysql database development files ii libmysqlclient9 3.23.24-2 mysql database client library pn libmysqlclient9-dev <none> (no description available) razer@Puerto_Lobo:~$ > > > >>If we intend with visual.allen, visual runs but errors messages clean >>screen and if it impossible for view nothing. >> >> > >Should be fixed now > Yes, it runs perfectly. > > >>In spreedsheet, we only have one spreedsheet, and it is empty. We >>probed, too, to copy 1.set from spreedsheet test, but again, nothing. >> >> >No it, is 1.sht. 1.set is a file containing the last settings of >switches, >potentiometers etc. connected to sheet 1. > Well, i aknowlegde that 1.set is for HMI, is it? > [...] > >>Where we specified PLC that there are cell to write and no other? >> >> >In your case in ab.tfi. >The format should be explained in the HTML documentation. Ooopss! This is certainly! We are really silly, we must revised very more documentation. >This is the only line from ab.tfi: > ><ALLENB> 'my first test' 15 162 137 7 200 20 1 'B1' 'E1' 'A1' </ALLENB> > >And here is what that means: > ><ALLENB> marks an instruction for Allen Bradley driver >'my first test' a comment. >15 AB's command code for 'protected read with 3 byte address' >162 AB's function code for 'protected read with 3 byte address' >137 AB's code for integers >7 Use file (N)7 in the PLC >200 Start with element 200 >20 20 bytes >1 use spreadsheet 1 >'B1' data goes into cells B1 to B10 >'E1' error codes go to E1 >'A1' this instruction is executed if A1 is not 0 ></ALLENB> ends an instruction for Allen Bradley driver > I revised visual output, this is clearly from this: Allen_B : thread starts. Allen_B : driver instatiated. setPort : /dev/ttyS0 rest 19200 n 8 1 setPort : /dev/ttyS0 = 6 setPort : fcntl: Success setPort : tcget...:Success setPort : 19200 rest n 8 1 setPort : n rest 8 1 setPort : 8 rest 1 setPort : tcflush:Success setPort : tcset...:Success Allen_B : intSetup fd: 6 plcdrv : load from ab.tfi Allen_B : comment :Nuestra primera prueba Allen_B : condition :A1 Allen_B : CMD :15 Allen_B : FNC :162 Allen_B : type :89 Allen_B : File :0 Allen_B : first word :100 Allen_B : length in bytes:20 Allen_B : sheet :1 Allen_B : to Cell :B1 Allen_B : Errors to Cell :E1 Allen_B : comment :Segunda prueba Allen_B : condition :A1 Allen_B : CMD :15 Allen_B : FNC :162 Allen_B : type :89 Allen_B : File :7 Allen_B : first word :200 Allen_B : length in bytes:20 Allen_B : sheet :1 Allen_B : to Cell :G1 Allen_B : Errors to Cell :E2 engine : no classname found cellList : registrations: 0 plcdrv : enter exec list plcdrv : enter exec TI1 Allen_B : 6 execTI CMD f FNC a2 Allen_B : 6 execTI p.t.r.i.w.3.b.a.f Allen_B : 6 I calc: eba1 = 161,235. Well, how you can see, we modified ab.tfi, here it is: <ALLENB> 'Nuestra primera prueba' 15 162 137 0 100 20 1 'B1' 'E1' 'A1' </ALLENB> <ALLENB> 'Segunda prueba' 15 162 137 7 200 20 1 'G1' 'E2' 'A1' </ALLENB> We see something in these test, but File... we don't aknowlegde at all, tomorrow we will fight with him more. >A spreadsheet used with this line must have the following cells, all numeric: >B1 to B10: to store results. If one of them is not there, the data for this >cell is simply thrown away. >E1: This will be set to zero if all is ok, to error codes otherwise. Notice >that in the test output you sent me, the driver wants to set E1 to 512. This >means "timeout". >A1 This cell must exist, be numeric and value must be nonzero, otherwise this >instruction will not be executed. Just write a one to it. > >So why does it write ten cells? >The length of data to read is set to 20 bytes. As the data type is integer >and AB's integrs are two byte, we get 10 integers. Data is stored to the >spreadsheet beginning with the cell given in the instruction (B1). The next >data goes to the next ROW: B2,B3...B10. > >Possible difficulties: There are no difficulties, visuals runs at first time, only a despist, i edited S5 line instead allen bradley line, but in few minutes we see my error ^_^ >I do not know how data is organized in a Micrologix 1500. >1.It may not have a file number 7. If so, change the 7 to an existing >number. Well, i say you that we don't aknowledge this at all, for example we are used a counter for N10 but if we charged N10 we don't apreciated some changes in values showned by visual. In capture attachment you can see that values for N7 and N0 practically are the same, only changes one cell, any explained? >2.It may not have more than 200 integers. If so change the 200 to >something >lower. I suggest 0. >3.It may not store integers in file 7. The only other data type >currently >supported is floating point. AB's code for this is 138. But I think you >can >also read bit files as integers. > >About a PLC program to test this: >Currently, there is not much use to connect outputs, as VISUAL will not >write >to the PLC. You need to read something from it. I would set up a little >program that counts using integer values. Then you can read out the >counters >value. Don't use special counters in the PLC as they might not be >accessible. >Do it with Integer addition. Well, tomorrow we depurated our program for adjust it to integer values. Tomorrow we tell you. More, >Their default baudrate is 19200. >Change this in your visual.cfg. >You can select from two modes for error correction:CRC or BCC. >allen_b.so uses CRC only. >You can disable/enable hardware handshake. >Please disable Well, how you can see, we modified for 19200, if value don't modified visual don't communicated with PLC. But, we can't understand hardware handshake, we don't know where disabled. More, we saw that you modified visual web page, and added spanish version. We send you pages when i traduced more. We saw too that faq are revised, there are some questions and answer, this is good, the project go on ;-D > >Good luck Well, we had it :-DD >salutations > >Thomas > > Un saludo. R. Gomez. -- Libertad es poder elegir en cualquier momento. Ahora yo eligo GNU/Linux, para no atar mis manos con las cadenas del soft propietario. |
From: Thomas H. <Tho...@we...> - 2002-11-06 16:22:12
|
"Juan Carlos Orozco" <jo...@ac...> schrieb am 06.11.02 14:45:26: Hola Juan Carlos, sorry, I'm not sure how up to date CVS is. I suppose, there have been left old files. With the very latest version, you will not need hmiFake or hmiFake2.java. The "fake features" have been moved into hmiFakeCI.java. hmiD.java has been replaced by hmiDesigner.java. Please adapt your Makefile/script for not to compile the obsolete targets. Some demos are NOT up to date, e.g. hmiInput.html. But hmiLinearDial is, so you may use these lines from it as an example how it should look: <applet code="hmiViewer.class" codebase="./" width=640 height=480> <param name="communicator" value="hmiFakeCI"> This will use the fakeCI that fakes values for my demo pages on visual.sourceforge.net Alternatives are: <param name="communicator" value="hmiVisualCI"> This is used to really communicate with VISUAL's server. <param name="communicator" value="hmiNoCI"> This is to be used with hmiDesigner. It just creates a variable for each variable/coodinate requested by the widgets and sets it's value to zero. Value can be changed by connecting a potentiometer to the same variable. > I was trying to do some more testing with your visual designer but the > java programs in the designer folder does not compile in my machine > (with java build 1.4.0_02-b02). It looks like there is an incomplete > version on the cvs. For now I am using an old version. I am sending you > the messages: > > H:\downloads\visual\designer>javac *.java > hmiD.java:143: cannot resolve symbol > symbol : variable hostError > location: class hmiD > hostError=0; > ^ > hmiFake.java:45: cannot resolve symbol > symbol : variable hostError > location: class hmiFake > hostError=0; > ^ > hmiFake.java:175: cannot resolve symbol > symbol : variable count > location: class hmiFake > for (i=0; i<count; i++){ > ^ > hmiFake.java:176: cannot resolve symbol > symbol : variable fields > location: class hmiFake > if ((fields[i].flags & 0x01) !=0) > ^ > hmiFake.java:179: cannot resolve symbol > symbol : variable fields > location: class hmiFake > cells=cells+fields[i].Cells[13].coord; > ^ > hmiFake.java:187: cannot resolve symbol > symbol : variable host > location: class hmiFake > "http://"+host+"/"+ > ^ > hmiFake2.java:44: cannot resolve symbol > symbol : variable herror > location: class hmiFake2 > herror=0; > ^ > hmiFake2.java:143: cannot resolve symbol > symbol : variable count > location: class hmiFake2 > for (i=0; i<count; i++){ > ^ > hmiFake2.java:144: cannot resolve symbol > symbol : variable fields > location: class hmiFake2 > if ((fields[i].flags & 0x01) !=0) > ^ > hmiFake2.java:147: cannot resolve symbol > symbol : variable fields > location: class hmiFake2 > cells=cells+fields[i].Cells[13].coord; > ^ > hmiFake2.java:155: cannot resolve symbol > symbol : variable host > location: class hmiFake2 > "http://"+host+"/"+ > ^ > PageViewer.java:71: PageViewer.DefaultAppletContext should be declared > abstract; > it does not define setStream(java.lang.String,java.io.InputStream) in > PageViewer.DefaultAppletContext > public static class DefaultAppletContext implements AppletContext { > ^ There must be something new in JAVA 1.4??? I do not have it at hand. Try to insert an empty method like: void setStream(java.lang.String S,java.io.InputStream IS) { } and see what it does or does not. > PV2inner.java:72: PV2inner.DefaultAppletContext should be declared > abstract; it > does not define setStream(java.lang.String,java.io.InputStream) in > PV2inner.Defa > ultAppletContext > public static class DefaultAppletContext implements AppletContext { > ^ > PV3inner.java:24: PV3inner.DefaultAppletContext should be declared > abstract; it > does not define setStream(java.lang.String,java.io.InputStream) in > PV3inner.Defa > ultAppletContext > public static class DefaultAppletContext implements AppletContext { > ^ > Note: Some input files use or override a deprecated API. > Note: Recompile with -deprecation for details. > 14 errors > About pageViewer and later versions PV2 and PV3: They are very experimental. You do not need them if you use the applets in a browser or with an appletviewer. They are trial versions to make links work via the showDocument method without using a browser. appletviewer does not implement showDocument. Further, appletviewer opens a new frame for each applet if called with multiple applets in the same HTML file. My aim with these things is to provide a lightweight extended appletviewer which can change pages, display multiple applets in a common window and maybe display text and a subset of html tags from the HTML page. This could eliminate the need for a browser on small systems. I just took the code from Kaffe's (www.kaffe.org) appletviewer and modified it. I'm using JDK 1.1.8 mostly. I will update CVS this weekend, I hope. HTH 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-11-05 18:01:43
|
On Tuesday 05 November 2002 13:16, you wrote: Hello Ruben, I didn't receive or see this mail completely this afternoon, but know, after downloading with mail reader, it seems to be complete. So I try to answer the oter questions: > visual.cfg.allen.1 we intend enabled logs, but if we intend, visual > crash, it can't start. Ok, from the output I see that log_mysql cannot find some function from libmysqlclient. Do you have it? If so, I will check why this happens. >If we intend with visual.allen, visual runs but errors messages clean >screen and if it impossible for view nothing. Should be fixed now > > In spreedsheet, we only have one spreedsheet, and it is empty. We > probed, too, to copy 1.set from spreedsheet test, but again, nothing. No it, is 1.sht. 1.set is a file containing the last settings of switches, potentiometers etc. connected to sheet 1. > > Well, we don't understand this at all. We must provided to spreedsheet a > numerical cell, but where PLC writes? The driver changes the values of numerical cells writing PLC data into them. > Where we specified PLC that there are cell to write and no other? In your case in ab.tfi. The format should be explained in the HTML documentation. This is the only line from ab.tfi: <ALLENB> 'my first test' 15 162 137 7 200 20 1 'B1' 'E1' 'A1' </ALLENB> And here is what that means: <ALLENB> marks an instruction for Allen Bradley driver 'my first test' a comment. 15 AB's command code for 'protected read with 3 byte address' 162 AB's function code for 'protected read with 3 byte address' 137 AB's code for integers 7 Use file (N)7 in the PLC 200 Start with element 200 20 20 bytes 1 use spreadsheet 1 'B1' data goes into cells B1 to B10 'E1' error codes go to E1 'A1' this instruction is executed if A1 is not 0 </ALLENB> ends an instruction for Allen Bradley driver A spreadsheet used with this line must have the following cells, all numeric: B1 to B10: to store results. If one of them is not there, the data for this cell is simply thrown away. E1: This will be set to zero if all is ok, to error codes otherwise. Notice that in the test output you sent me, the driver wants to set E1 to 512. This means "timeout". A1 This cell must exist, be numeric and value must be nonzero, otherwise this instruction will not be executed. Just write a one to it. So why does it write ten cells? The length of data to read is set to 20 bytes. As the data type is integer and AB's integrs are two byte, we get 10 integers. Data is stored to the spreadsheet beginning with the cell given in the instruction (B1). The next data goes to the next ROW: B2,B3...B10. Possible difficulties: I do not know how data is organized in a Micrologix 1500. 1.It may not have a file number 7. If so, change the 7 to an existing number. 2.It may not have more than 200 integers. If so change the 200 to something lower. I suggest 0. 3.It may not store integers in file 7. The only other data type currently supported is floating point. AB's code for this is 138. But I think you can also read bit files as integers. About a PLC program to test this: Currently, there is not much use to connect outputs, as VISUAL will not write to the PLC. You need to read something from it. I would set up a little program that counts using integer values. Then you can read out the counters value. Don't use special counters in the PLC as they might not be accessible. Do it with Integer addition. Good luck salutations Thomas |
From: <mix...@ja...> - 2002-11-05 12:28:24
|
loader : after open loader : line 1 : # loader : line 2 : # This configuration file was used to test Allen Bradley master (normal) loader : line 3 : # and slave (VISUAL answers like AB PLC) drivers loader : line 4 : # loader : line 5 : # Write a confuguration file like this one for your project or for each you loader : line 6 : # are running on the same machine. It must be in the directory you start loader : line 7 : # VISUAL from. loader : line 8 : # loader : line 9 : # Every line beginning with a '#' is a comment. loader : line 10 : # loader : line 11 : # The directory where you keep the .sht files (spreadsheet contents) loader : line 12 : # and .tfi files (transfer instruction list) for the drivers for this loader : line 13 : # project. This is the minimum you must specify. loader : line 14 : # loader : line 15 : #project: ./work/ loader : line 16 : project: ./pruebas/ loader : found project directory: ./pruebas/ loader : trying to load the spread sheets. loader : Tue Nov 5 09:33:22 2002 loader : trying to load: ./pruebas/1.sht loader : loading ./pruebas/1.sht. engine : outer closing classname /SHEET loader : no such file: ./pruebas/1.set. loader : Tue Nov 5 09:33:22 2002 loader : trying to load: ./pruebas/2.sht loader : line 17 : # loader : line 18 : # The directory where you keep the drivers. You have to set up this if loader : line 19 : # you need any loadable drivers. Normally, you do. loader : line 20 : # loader : line 21 : driverpath: ./drivers/ loader : found driver directory: ./drivers/ loader : line 22 : # loader : line 23 : # Select one of the loadable language modules here: loader : line 24 : # loader : line 25 : #language: lang_fr.so loader : line 26 : #language: lang_en.so loader : line 27 : #language: lang_gr.so loader : line 28 : language: lang_es.so loader : found language module: lang_es.so loader : I will dlopen module: ./drivers/lang_es.so loader : line 29 : # loader : line 30 : # A PLC driver for the Siemens S5 series: s5_drv.so loader : line 31 : # The first parameter is the filename of the tfi-list, here: 2.tfi loader : line 32 : # The rest will be passed on to the driver. It will then use ttyS1 with loader : line 33 : # 9600 baud, even parity, 8 bits and one stop bit. loader : line 34 : # loader : line 35 : #driver: s5_drv.so 2.tfi /dev/ttyS1 9600 e 8 1 loader : line 36 : # loader : line 37 : # A nother PLC driver is alspadrv.so loader : line 38 : # loader : line 39 : #driver: alspadrv.so alspa.tfi /dev/ttyS3 19200 o 8 1 loader : line 40 : loader : *** Syntax error in line 40 loader : line 41 : # loader : line 42 : # A driver to connect to beckhoff BC9000 controller via ethernet: loader : line 43 : # loader : line 44 : #driver: beckhoff.so beckhoff.tfi 172.16.17.1 loader : line 45 : # loader : line 46 : driver: allen_b.so ab.tfi /dev/ttyS0 9600 n 8 1 loader : found driver module: allen_b.so loader : found driver info: ab.tfi /dev/ttyS0 9600 n 8 1 loader : Driver Instruction List in: ./pruebas/ab.tfi loader : I will dlopen driver: ./drivers/allen_b.so loader : dlsym: (null) Allen_B : thread starts. Allen_B : driver instatiated.plcdrv : load from ab.tfi engine : no classname found cellList : registrations: 0 plcdrv : enter exec list plcdrv : enter exec TI1 loader : created driver thread: 0 loader : Tue Nov 5 09:33:22 2002 loader : line 47 : #driver: allen_b_slave.so abslave.tfi /dev/ttyS1 9600 n 8 1 loader : line 48 : # loader : line 49 : # Another driver you may want to use: server.so loader : line 50 : # This is not a PLC driver, but the server module that accepts loader : line 51 : # connections from HMI viewers or other instances of visual. loader : line 52 : # No tfi-list will be used by this driver, but a port number to listen to: loader : line 53 : # loader : line 54 : driver: server.so port=1182 loader : found driver module: server.so loader : found driver info: port=1182 loader : I will dlopen driver: ./drivers/server.so loader : dlsym: (null) server : Main serv: port=1182 server : Main serv: 1182 server : Main serv: 1182 server : Main serv: I pass pipe fd to accepter:0 loader : created driver thread: 0 loader : Tue Nov 5 09:33:22 2002 loader : line 55 : # loader : line 56 : driver: server2.so port=182 loader : found driver module: server2.so loader : found driver info: port=182 loader : I will dlopen driver: ./drivers/server2.so loader : dlsym: (null) server : Main serv: about to select on 7 server2 : Main serv: port=182 server2 : Main serv: 182 server2 : Main serv: 182 server2 : Main serv: I pass pipe fd to accepter:0 loader : created driver thread: 0 loader : Tue Nov 5 09:33:22 2002 loader : line 57 : # loader : line 58 : # Now comes the complement to server.so, client.so loader : line 59 : # This is can make connections to other instances of visual. loader : line 60 : # The tfi-list defines for each connection the peers IP, port and the values to loader : line 61 : # get from this system. loader : line 62 : # loader : line 63 : #driver: client.so client.tfi loader : line 64 : # loader : line 65 : # The following modules do data logging/recording: loader : line 66 : # loader : line 67 : driver: text_rec.so text.tfi loader : found driver module: text_rec.so loader : found driver info: text.tfi loader : Driver Instruction List in: ./pruebas/text.tfi loader : I will dlopen driver: ./drivers/text_rec.so loader : loading: ./drivers/text_rec.so dlopen():./drivers/text_rec.so: cannot open shared object file: No such file or directory loader : dlsym: ./visual: undefined symbol: DriverThread__FPv server2 : Main serv: about to select on 9 loader : created driver thread: 0 loader : Tue Nov 5 09:33:22 2002 loader : line 68 : logger: log_md7.so md7.dri /visual/data/tests/ loader : found LOGger module: log_md7.so loader : found LOGger info: md7.dri /visual/data/tests/ loader : module Instruction List in: ./pruebas/md7.dri loader : I will dlopen module: ./drivers/log_md7.so server : Accepter : My pipe is:8 server : Accepter : port 1182 server : Accepter : setsockopt Success server : Accepter : bind Success server : Accepter : listen: Success server : Accepter : before accept Success server2 : Accepter : My pipe is:10 server2 : Accepter : port 182 server2 : Accepter : setsockopt Success server2 : Accepter : bind Permission denied server2 : Accepter : listen: Permission denied server2 : Accepter : before accept Permission denied log_md7 : enter setup. list: ./pruebas/md7.dri path: /visual/data/tests/ log_md7 : after registerModule with mask: 1 log_md7 : after setting path to: /visual/data/tests/ log_md7 : load from ./pruebas/md7.dri engine : no classname found log_md7 : instruction list loaded. loader : Tue Nov 5 09:33:23 2002 loader : line 69 : logger: log_mysql.so mysql.dri localhost,root,,laserdaten,table2 loader : found LOGger module: log_mysql.so loader : found LOGger info: mysql.dri localhost,root,,laserdaten,table2 loader : module Instruction List in: ./pruebas/mysql.dri loader : I will dlopen module: ./drivers/log_mysql.so log_mysql: enter setup. list: ./pruebas/mysql.dri path: localhost,root,,laserdaten,table2 log_mysql: after registerModule with mask: 2 log_mysql: host: localhost log_mysql: user: root log_mysql: password: log_mysql: database: laserdaten log_mysql: table: table2 log_mysql: load from ./pruebas/mysql.dri engine : no classname found log_mysql: instruction list loaded. ./visual: error while loading shared libraries: ./drivers/log_mysql.so: undefined symbol: mysql_init |
From: Thomas H. <Tho...@we...> - 2002-11-04 13:07:08
|
"Thomas Hergenhahn" <Tho...@we...> schrieb am 04.11.02 13:04:00: > Hola Ruben. > > Hi all, > > > ...i've got it, if you want, you request me and i send you. > Yes, please > > > >...we have (been) working with visual and i > > have test(ed) it. > Did you yet test with Micrologix 1500? Allen Bradley's manual mentions only > the Micrologix 1000 and it does not say very clearly whether this supports > the communication command I used in the AB driver. If so, the driver should be able to > read from PLC. If this works, I will extend it for write operations and you can test it. > > > > Only a questions, how we can created a new spreedsheet? > > There must be a first sheet or VISUAL will not start. > If you want an empty first sheet, make a copy of an .sht file from the work directory and > delete all the line defining cells with some text editor. > Another way is: > In the spreadsheet editor, you go to the next sheet preesing the plus key or using "next sheet" > from the menu. > If there is no next sheet, the editor offers you to create one. Confirm this and save the empty > sheet using > F2 key or the menu entry "save". > If your previous highest sheet number has been 8 for example, the new sheet is the file > 9.sht in the current working directoy. > If you want to create a new project from scratch, make a new working directory "myproject" or > what you like. > 1.Copy the empty sheet to this directory. > 2.Change the name to 1.sht because you need a first sheet to start. > 3.Edit visual.cfg to use the new working directory. > 4.Start VISUAL. > The individual layout of your sheets must be done by hand editing. > Note that you must provide a numerical cell or timed nurerical cell > for each data word you want to read from a PLC. The PLC drivers will NEVER create cells. > This is a safety and stability restriction, because otherwise a wrong line in the driver > instruction list could do a lot of damage overwriting cells or eating up memory. > You can save work using the mark and copy commands for ranges. For example, if you have > multiple cooling > devices and for each you do a calculation, you can mark this and copy it multiple times. > But this depends much on the layout of your PLC program. It's a good idea to yet store all data > you > need to read in adjacent locations in the PLC's memory. Then you can transfer it as one block. > (Limited by communication block sizes). > It would be nice if there were a possibility to create the numerical cells from the PLC softwares > symbol list, but as each manufacturer has it's own file format,it's not easy. > People with lot's of time could write PERL scripts for this task... > > > > Other thing, we had seen in visual-devel list, and we read new messages > > beetween Juan Carlos and you, well only say you that there aren't > > problem for us by you included our messages in list, if you want. > Yes, thak you, but it would be even better if you would either add visual-devel list > to the address line of your messages > or write directly to the list (I will get it the same moment). > This will allow other people to follow the discussion as a thread. > > > > More, in a bite of days we can probed omron libraries that you send us, > > we have wait for an omron PLC. > Fine, but from a first look on the library I fear it can only display > the state of the PLC and not read/write data. But if this works, I can reuse the underlying > communication basics. > > saludos > > 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-11-04 12:03:34
|
Rub=E9n=5FG=F3mez=5FAntol=ED <mix...@ja...> schrieb am 04.11.02 12:25:08: > Hi all, >=20 > well i'm working with visual only a bite, but i traduced spreedsheets to= =20 > spanish. >=20 > I revised faq too, and i change his style, i hope that is likely you. I=20 > think in traducid it to spanish too, but i see that faq need to revise=20 > because there are any questions that are obsolete. >=20 > I'm working with documentation too, i traduced several pages to spanish,= =20 > but you say me that there are problem in post it in sourceforge.net. Not= =20 > problem, i've got it, if you want, you request me and i send you. >=20 > I traduced it because mi work companion not understand english very well= . >=20 > I revised too the documentation and i testing with hmi in web style. I=20 > found it interesting, little by little we have working with visual and i= =20 > have test it. >=20 > Only a questions, how we can created a new spreedsheet=3F Only by editing=20 > to hand=3F I edited spreedsheet by alt+e but over a existing spreesheet,=20 > we want to create new. I had look for it in documentation but i didn't=20 > found it. >=20 > Other thing, we had seen in visual-devel list, and we read new messages=20 > beetween Juan Carlos and you, well only say you that there aren't=20 > problem for us by you included our messages in list, if you want. >=20 > More, in a bite of days we can probed omron libraries that you send us,=20 > we have wait for an omron PLC. >=20 > Un saludo. >=20 > R. Gomez >=20 > --=20 > Libertad es poder elegir en cualquier momento. Ahora yo eligo GNU/Linux,= > para no atar mis manos con las cadenas del soft propietario. >=20 >=20 =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-10-19 12:49:52
|
Hello all, I'm very sorry about proplems with making this version. I don't know how it happened, but the files Makefile.am and Makefile.in in the main directory were wrong. In fact, they were copies of the files in drivers. Sorry for this trouble. libg++ is still needed. If you don't have it or want it, comment out the line CXXFLAGS+=-Duse_string_2 and remove -lg++ from VISUAL_ldadd, both in Makefile.am. It should then use strings from libstdc++ Thomas |
From: Thomas H. <Tho...@we...> - 2002-10-18 19:59:05
|
Hello, I just put files for next version into CVS. These contain: Makefile generation by ./configure a tvision subdirectory containing a subset of TURBOVISION classes as needed to build VISUAL Note that the debug output now goes into stderr. So, you should invoke: ./visual 2>vout Thomas |