[Visual-devel] Re: Visual Architecture question
Status: Alpha
Brought to you by:
lettoz
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 |