Jump to content

tmoulder

External Moderators
  • Posts

    196
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by tmoulder

  1. As stated in a previous thread, I have a 280 project where the data table is sporadically not being read out. I don't understand why it is not coming through, the code is very simple, but if I had a bit confirming the read took place, I could verify it.

    I can always add a column to the table, an MB set to "1", and reset the MB in ladder before reading. When the bit goes to "1", I know the read finished. But I thought a system bit would be better, since anything in the OS reduces my ladder overhead.

    Thanks,

    TM

  2. Hi guys,

    There seems to be a bug in the background images. If I put in a new image and choose to replace all occurences (same background in several screens) and cycle power, the power-up display has a black and white background with hebrew text on it. Changing screens after this results in each screen piling on top of the next, with no update to the background for any of them.

    If I change the background images individually, no problems

    Thanks,

    TM

  3. Hi All,

    Vision 280, latest OS and Visilogic 863.

    I'm using a data table for process parameters. All DT commands are manually triggered from the touchscreen. When I try to read from the DT, sometimes the read takes place, sometimes not. I've got an indicator on-screen that shows the net executing the DT Read has operated, but not data was read. Repeated presses of the touchscreen button will eventually make the read happen.

    Very bizarre. I could work around it with a latching arrangement, but I'd rather find a root cause. One thing I did differently in this application was grouping multiple data elements into single columns (Column 1 has three elements, A, B, C, all signed integers). I'm wondering if there is a relationship.

    Thanks,

    TM

  4. Greetings all,

    Running Visilogic 8.6.3 on Windows XP.

    I decided to restart my current project afresh, so I created a new project, copied the buttons, frames, images and list-of-text from the main screen of my old project, and pasted them into the main screen of the new. I then went to set my background image and got the following error:

    Run-time Error '3021': Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

    This is followed by another error on any attempt to change from the current HMI page:

    Run-time Error '-2147418105 (80010007)':

    Automation Error

    The callee(server [not server application]) is not available and has disappeared; all connections are invalid. The call may have executed.

    Followed by Visilogic crashing.

    I recovered from the crash and "cut" the buttons from the screen, then I could change the background image normally.

    I re-pasted the buttons and deleted the list-of-text variable and this allowed me to change the background normally. I then created a new list-of-text and could still change the background.

    It seems like something may be messed up in the list-of-text variable, at least as regards copy-paste, that is impacting the background image.

    Thanks!

    TM

  5. Greetings all and Happy New Year!

    I'm poking around some more on trending, and I saw again something I would like in this feature.

    My current project involves recording the lifespan of a product under test. I'd like to record the processing time of each test cycle, and trend the results on screen.

    Unfortunately, trending is strictly time-based, and these tests can be several minutes long, and as the product wears, duration increases. This could be solved with an operand that, when transitioned low to high, would input a data point into the trend. Basically, a "manual record" feature.

    Thanks!

    TM

  6. One more observation:

    In the source program, I linked ML 400 to an INC FB with a 1 sec pulse to change data for testing purposes. I've since tried it linked directly to a rail, and the buffer quickly overflowed, despite constant SD writes. The 100mS pulse worked fine, and gradually brought the buffer down as well.

    It may be my card is not fast enough, but it looks like 100mS would be the best write speed, since you do want the buffer to eventually empty out.

    Thanks,

    TM

  7. Hi guys,

    As far as the File Info FB, I couldn't get anything from it besides a status of 16 and a success bit going high, everything else was "0". I shut down all SD Write operations and toggled the FB manually, and that was still the result.

    I was a little confused by the busy bit on this command, it uses (and requires at compile) SB 359, the Folder Report in Progress bit to control itself. However, there is also SB 343, File Report in Progress, which appears to be unused.

    After exporting the various parts of the program for further import, I then imported them into a blank program to make sure everything came in and started properly. The only problem I saw then was in the View SD Contents object, the Folder to View (set to Excel 1 in the source program) was blank. I made a note of that and published.

    Later yesterday evening, I tried importing the code into one of my own programs. This time, the View object's folder was randomly set to 100 (DT1).

    Lastly, a bug report of my own - in the Data Tables Copy Rows function in Net 23 of the source, the Target Row Number operand is set to "MI 0". This should be a constant "0". It didn't produce a problem in the test program, since MI 0 wasn't used for anything.

    Updated module attached.

    Thanks,

    TM

    SD Card with Buffer Rev 1.zip

  8. Attached is a program that writes a vector of 10 ML to the SD card as excel CSV data via a Data Table that acts as a buffer. This allows you to remove and re-insert the card without losing information.

    I developed it for my own education, and wanted to share. In the Read Me text are instructions for importing it into your own program, including used memory ranges, and some important info I discovered along the way, so be sure to read it.

    A couple of notes from the readme - I was unable to get the File Information FB to work, it always returned a status 16, so I did not use it. And there seems to be a bug in exporting / importing an Explore SD Contents screen object, the folder to open does not come across, and must be assigned manually (Excel 1, by the way).

    Enjoy!

    TM

    SD Card with Buffer.zip

  9. Thanks Emil!

    I'm trying to create a data collection function to store to SD. My original plan was to create a file each day based on RTC. But with the 64-file limit per folder, this was becoming very complicated (check folders, count files, route to this folder or check the next, etc, etc.

    One suggestion - It would be splendid to do away with the File Report FB and somehow roll that function into System Operands that update periodically, like the capacity count does now.

    Thanks,

    TM

  10. Hi Stein,

    In the image attached, the excel-looking cells are 4 copies of a .PNG file I created to get a nice, clean layout of a mass of servo-related data for display.

    The text elements in this are not Text objects, they are binary text variables. If I place a standard (non-variable) text object over the bitmap, when I download it to the 570, the text is "hidden" behind the bitmap and invisible on the PLC screen.

    If I use a text variable, linked to SB 0, then the text displays correctly as it does in the image I attached. But I don't like doing this, because it's a variable, when all I need is text.

    I thought that the HMI Draw Order Utility would allow us to address this, by telling the PLC to draw the bitmap, then draw the text over it. Draw Order does allow me to change this, but it has no effect on what's displayed on the screen once downloaded.

    Thanks,

    TM

    PS: I've discovered that Tahoma is a really great and legible small font for the 570. Just wanted to share...

    post-19-077188400 1291223903_thumb.jpg

  11. Sorry, couldn't resist :D

    I've been wracking my brain about this, and was wondering if anyone has tried it - or perhaps if it's even necessary.

    I'm working on a project where data is to be stored by the Vision to an SD card as an excel file (.csv if fine). Periodically, the user would remove the SD card to collect data. Simple, right?

    But when the card is removed, the system may continue to run, and I don't want to lose any data.

    My first thought was to use a data table as a buffer. Data collected goes into the buffer, and when the buffer is full, write to SD card, wipe the table and restart from the beginning. Simple, right?

    Thing is, it seems from the docs that I can write a DT to an SD, but not in the form of a CSV. It's two separate functions. And I don't want the user to have to convert the DT to a CSV via SD Suite, because that's one more piece of software and one more step to getting their data.

    It occurs to me I could read each row of data out of SD into operands, then write that line to CSV, then repeat. I get the sense this could take a long time to accomplish with a substantial buffer DT full of ML values, and my gut tells me this could be fraught with pitfalls.

    Is there a utility somewhere I am overlooking that writes DT to SD as CSV, or has anyone else faced a similar challenge in the past, and have some handy advice?

    Thanks!

    TM

  12. Hi again,

    I finished updating a project in an old V280 (thanks Ash) that brought back some fond memories along with the modbus headaches. One that I recalled fondly was the way a V280 ALWAYS downloaded the project to the controller for future upload.

    I'd like to see an option in Visilogic I could set to always download and burn upload project. This would include streamlining the download process so it happens without me having to sign off on a couple of pop-ups warning me about doing it. Essentially, make that portion behave like a 280.

    Thanks,

    TM

  13. Another suggestion:

    I've been using grids on my screens of late (like an excel sheet) because they make a nice way of displaying alot of data, and are also useful for aligning buttons. Drawing these in paint is a nuisance, and I can't use one and stretch it because the lines get messed up.

    It would be nice to have a grid object. Say, specify row height and column width, then as you stretch it, it adds additional rows and columns. Then populate the cells with either text or operands. To be really nice, allow cell backgrounds to be set individually.

    Thanks,

    TM

  14. >>Just thought I'd throw something in on the HMI Display Jumps - I know most of the time we use Buttons to Jump between Displays, but at times we still use MB's or SB's on the HMI Jumps List Box that aren't hooked up to buttons and are either controlled by the OS or by us Users in Ladder.<<

    Hi Ash,

    Yeah, I thought of that too. Fortunately, there is already the Jump to Screen function in Ladder that makes that capability redundant.

    Speaking of redundancy, I do think it's time to consider some editing to Visilogic itself. The growth has been pretty organic, and in some respects it shows.

    Consider this - in the current form, you can make a screen jump by:

    1. Assigning a boolean operand in a Jump link, triggering by touch

    2. Assigning a boolean operand in a Jump link, triggering from ladder.

    3. Use the Jump to HMI ladder FB, triggered from ladder.

    I'm as big a fan of options as anybody, but by adding a "jump to hmi" function in the button properties, you can streamline #1, eliminate the entire jump table, and manage ladder-based jumps via FB.

    I'm all in favor of Joe's idea for streamlining modbus. Instead of relying on the user to make every decision regarding busy bits, trnamsission times and the occasional dodo using Scan_EX in an illegal context (d'oh!) set up a config box like CanOpen has, and let the OS sort out the most efficient way to manage it. If CanOpen can do it behind the scenes, why not Modbus?

    I'd still like to see individual bar graphs eliminated and replaced by a trends-style bargraph object that would be easier to configure, scale, etc, etc.

    Did I mention adding change-of-state to CanOpen?

    I just think maybe it's time to prune the tree a bit.

    Thanks!

    TM

  15. Hi guys,

    Playing around with the new beta, generally loving it. Definitely loving the 16k colors, can't wait for the official release, and the 1040 to go on the market!

    The new tab structure for HMI. It seems to me the zoom feature is "zooming" further, which I like. Not sure how I feel about having to change tabs for jumps, let me try a project on it and I'll have more thoughts.

    But one thing that did occur, in Visi we've always assigned screen jumps by placing them in the list box under the HMI. I was thinking that if a "screen jump" option were placed in the button properties box, we wouldn't actually need that at all. Additionally, assigning a screen jump button is a multi-stage process:

    1. Create button

    2. Assign MB to button

    3. Assign Jump to MB

    I have a vector of 10 MB set aside entirely for navigation. If you could configure a button for screen jump, you wouldn't need an MB at all.

    Now that we have 16k colors and the new resolution on the 1040, I have a new challenge for you - gif playback. I know, we can brake gifs down to individual images and use list-of-images, but frankly, it's a pain in the neck. I'd like to see a gif object that can be set to play continuously or once, either from MB or touch.

    Thanks! Everything's looking great so far.

    TM

×
×
  • Create New...