Jump to content

Damian

UniStream & UniLogic Beta
  • Posts

    534
  • Joined

  • Last visited

  • Days Won

    13

Posts posted by Damian

  1. Hi guys,

    Trying to set up a 1210 screen on my Acer netbook. Now, my trusty little Acer is not a bad computer - I'm running an Intel Atom N270 CPU at 1.6 Ghz, with 1.48 Gb ram. It's got Windows XP SP3, all the latest updates, and I keep my hard drive and registry scrubbed regularly with CCleaner.

    Nonetheless, Visilogic is running sloooooooow. I've noticed in the past it was a bit laggy (took a second or two for pop-ups to open and so on) when trying to program a 570, but the delay was tolerable, if not ideal. But the 1210 is, in fact, intolerable. The delay drags on for 5-10 seconds simply trying to select an object on the HMI screen.

    Perhaps I'm missing something. I tend to doubt that it's the hardware specs, given I can run Autocad on it without issues, and that's the most resource-devouring software I can think of. I tried disabling my anti-virus, but it made no difference.

    Thanks,

    TM

    This sounds eerily similar to the effects I was experiencing (post "Visi 9.3 Slow"), only for me it was acting this way no matter what unit I selected.

    It did eventually start to act better, oddly enough without any intervention from me.

  2. Hi Damian,

    It seems like the capacity exists in Visilogic to look for these sorts of "gotchas". After all, if you try to use a CanOpen PDO or NMT, or a modbus command, the compiler checks to see if you put a buffer bit or busy bit ahead of the instruction.

    I really think the simplest solution (for us users) would be something in the OS that checks what HMI is displaying an ignores additional calls to that screen. Then it wouldn't matter how you called the HMI, and the problem would go away altogether.

    My two bits.

    TM

    Hi TM,

    I agree. It would be nice to have the One-shot built in or the OS take care of it. Unless someone could come up with a rational reason how re-invoking the same screen on multiple consecutive scans (especially if it is already the current or loading screen) can be useful somehow. I've mulled it over and can't come up with one myself, but there are a lot of creative minds out there.

    My fealing is, if any function block should only rationally be invoked in a one shot fashion, then build it in for us so we can't goof it up. Like the CanOpen PDO you mention...... If it forces you to have it there, then why not take care of it for us and eliminate the extra work or possible screw up.

    D

  3. I just gave a class this morning on Unitronics/Visilogic and noticed that there is one common rookie mistake that seems to be made often with Visilogic.

    His problem, as he perceived it, was that he couldn't get his V130 to accept a numeric input.

    After fiddling around with his program a bit, and confirming that indeed the numeric input wasn't working, I started scanning through the ladder.

    Sure enough, he had used regular contacts to invoke HMI screen calls. The numeric input wasn't working because the screen call was being initiated every scan.

    This mistake seems to be common enough that it would be nice to maybe put some sort of warning at compile time if the logic sourcing the call does not contain a trasitional contact of some sort.

    I do realize that there are other methods of generating a one shot outside of using transitional contacts for HMI calls, and that it would be difficult to create a rule that would exclude all possible erroneous warnings for this, but I can't think of any other simple tests you can perform with Visilogic to help find this error. I still think it is worth some kind of warning as I have seen this cost many man hours by first time users.

    I also can't think of any good reason why you would ever want to call a screen in anything other than a one shot fashion. To this point, I think it should be considered to actually make the one-shot part of the call function itself. This way if someone invokes the HMI call it only invokes on the low to high transition of its enable input, and has to go from high to low again before you can re-invoke the call.

    There are other functions, such as for example the TCP init bocks, that may also deserve consideration for the transition being built into the block.

  4. Don't feel bad. I've done it, people I know personally have done it, people here have reported doing it - it happens alot.

    And on that note, to the Uni design gurus - I know, I know, we're supposed to be engineers and technicians and we should at least be able to read the little labels on the sides of the units. But we're still humans, and we get excited about our new toys and we goof up.

    Human nature being what it is, it's inevitable that people will continue plugging the enet cable into the expansion port, and I can count at least 20 hours (mine, another fellow I know, and now Rick) that have been lost on this.

    Sometime in the future, it might be a good idea to change the form factor of the expansion adapter away from RJ-45. Just sayin'.

    TM

    Ditto on all these points!

    Our customer just blew up a servo motor encoder because he plugged the encoder cable into the "Encoder Out connector" instead of the "Encoder in Connector". Manufacturer thought it was a good idea to use the same gender 15 pin D connector for both, and put them both right next to each other on the bottom of the drive. It's just asking for trouble.

    And yes, I've Ethernetted the expansion port myself a couple time. Thank goodness the circuitry is such that it doesn't damage anything.

    D

  5. Hi,

    I can't recreate the phenomenon you're describing.

    Please send the application to support@unitronics.com.

    I suspect it is has something to do with the logic of the application.

    HI Stein,

    I just created a new project from scratch. No logic at all except to name the PLC and initial the Ethernet IP address. Numeric entry defaults to "pressed" look. It shows as "Unpressed". Project is attached.

    D

    Pressed Test.vlp

  6. I wish someone to define what he means by "Initial values". Downloaded first time? OK, then please define "first time"...

    Two small ideas:

    1. Watches. One can define the list of operands to change their values on line. Then the procedue will be much easier.

    2. One can define a data table - Part of project (Flash, downloaded withh the project) with 3 columns - min, max and default value. Then, a simple subroutine can be activated to read the values from DT and compare them to operand's values. In case the value is in defined range (operator already set the system), no action will be taken. In case thhe value is out of range, the programmer decide to rise a flag for the operator, stop some functionality and ask for data entry or automatically load default values. This soluiton is simple and more universal than just setting initial values.

    Hi Emil,

    My definite of initial value is the value an operand takes on a reboot. In the operand window, you have a column for the "Initial/Power Up" value (the little plug symbol) and the "Current Value" (under the little eye glasses). We are not really talking about initial values here. We are talking about the "current" values. It is standard practice with pratically all other manufacturers that the values under the eye glasses don't just disapear when going offline. They are retained. This way, when you download the program again, not only are you downloading the code, you are also downloading all the operand values (with the exception of the read only values).

    Has nothing to do with the 1st download, or the 1000th download. When you download, it sets the operand values to those values that are in the program. Right now, visilogic just downloads the code, but leaves all the operand values untouched.

    For example, I am online with the controller. The current value of ML65 is 1234. When I go offline, the controller should ask me if I want to retain the values of the operands, which normally I would say YES. Now, while offline, I can still see ML65 as having value 1234. I should be able to go in there and type in instead 4321 while still offline. Now when I go online, or download, Visilogic should ask me if I want to upload the RAM values that are in the PLC to the current program, OR, if I want to download the operand values based on what their values are in the program. If I choose to download the operand values, then ML65 should now be 4321 regardless of what the value was inside the PLC prior to that. That DOESN'T mean that after a re-boot, that the controller will always reset ML65 to 4321. That would only happen if an initial value was defined for ML65, and happened to be 4321.

    Now keep in mind, again, we are not talking values. Just because I want to determine what the values are when I download, does not mean I want those operands to assume those values everytime the thing reboots.

    I'm not just pulling this stuff out of the air. This is the way virtually everybody else does things. And generally, when the vast majority of manufacturers come to consensus on something it is usually because that is simply the best way to go about it.

    A small example of why this is useful. Say you have a project where your going to build 5 identical machines.

    The machine is heavily reliant on values that the setup guy has entered through the HMI.

    Maybe it always just runs one product, so there is no point in creating recipes.

    After I am done debugging machine #1, I know that all the setup values that were performed are going to be very close to what they need to be to get machine #2 running.

    I don't want to have to sit there and maybe type in 100+ new values in the touchscreen to get machine #2 to the level that machine #1 is at.

    I don't want to have to store things in excel files, or create code for data tables, or copy to an SD card that may or may not be there, or anything of that nature.

    I want to simply be able to just download, and have the new PLC completely duplicated both code and memory. That's it. Nothing more. That is all that I should need to do. If I have to do anything more than that, it is a waste of my time and the customer's money doing something that the software should already be taking care of for me.

    One thing I have found with Unitronics and Visilogic when introducing it to new customers. If I introduce it to someone with little or no PLC experience, they tend to pick it up easier because they don't have preconceived expectations. On the other side, introducing it to people with a lot of PLC experience often doesn't go so well. You hear phrases such as, "you mean I can't do this", or "this isn't very intuitive". It's a tougher sell, because they are already aware of things that they can do with other products that they can't do with Visilogic.

    Alot of these things are very small things. This operand issue, no online edits, copy and paste behavior. These are also the things that will frustrate an engineer and make them reluctant to use the product. This isn't just my opinion, I am reiterating the feedback of other's I have introduced the product to.

    Some examples of things that have frustrated me over the past week.

    1) I have a project where I have a very similar grouping of objects on many different pages. These objects don't necessarily fall in the same location on every screen. Because of the copy/past behavior of the HMI, I first have to copy the objects to a blank screen, move them to a new location, and then cut and paste into the destination screen, because visilogic won't allow me to initiate a paste if the copied object came from a location that is already occupied at the destination. Most other software would either show the copied object on my mouse pointer and allow me to locate it anywhere I want, paste it wherever I click my mouse, paste it in the nearest available free spot, or simply paste it over top of the other anyhow and not care if they overlap. Any of these are better than they way Visilogic handles it, which is to just say NO. Can't do that.

    2) I have a grid of toggle buttons on a screen that I set up to be green as ON and red as OFF. 64 of them in total. They were all already done, located, and assigned their appropriate individual operand. Guess what, customer didn't like green and red. He wanted light and Dark. Took me over 30 minutes of mindless clicking to make such a simple change because I had to perform the same action to all 64 objects. Other softwares, I could have highlighted them all. A window would have popped up showing all properties the objects have in common. I could have simply changed the color property for the ON state for all 64 at one time and done. Now 30 minutes is cut down to 30 seconds. Making the problem worse, was that about every tenth time i tried to double click on an object just to bring up the property window, it would inadvertently move the object, and I would have to go back and reposition after. And on top of that, after bringing up the property window, I would have to click on the color tab, which would bring up yet another window located at a completely different spot on the screen. Then I have to click on the new color, click OK in that box, move all the way over to the original window, and then again click ok on that box as well. Doesn't sound like much until you have to do it 64 times in a row. That a total of nine mouse clicks per object to change both the ON and OFF color, going all over the screen with the mouse. Or to put it simply, it took 576 mouse click just to change two colors, and that doesn't even include repositioning the objects that were inadvertantly moved.

    3) I have a group of objects that needs to be bumped on the screen slightly in one direction or the other. Rather than attempt to get it perfect via the mouse with my jittery hands, I like to use the arrow keys to move highlighted objects around. If I select more than about 5 at one time, it goes into hourglass mode and takes about 10 seconds to shift over one pixel. If I have to move over 6 pixles, I am looking a full minute just to move some objects. Yet, if it is moved by the mouse it can move the group faster than I can blink. Doesn't make any sense.

    4) I just finished downloading. Oops, I messed up and that normally open contact should have been a normally closed. I go offline, change it within about 2 seconds, and then hit simple download. Not download and burn, not download and reset, just simple download. I literally just tested it with a stop watch. It took over 30 seconds to complete. This is with a direct Ethernet connection. With a brand new Pentium I7, 3 GHz machine with 8 GB ram, solid state hard drive etc. 30 seconds to change one contact.

    It is difficult to quantify how much time these 4 very simple little things have cost in terms of time just this past week. But it is a lot. These are the things I really hope R&D puts a lot of thought into for the next generation product.

    Thanks,

    D

  7. I don't know exactly when it started happening, but I am having an issue with HMI objects that I have selected to be 3D Pressed in design time showing up as 3D Unpressed at runtime.

    No matter whether I select Pressed or Unpressed, they always look Unpressed when actually running on the V570.

    I even downloaded an old program that is working fine out in the field to the V570 and it is still not displaying properly.

    I am using Visilogic 9.3.0 build 0

    The V570 has OS 3.4 (00)

    Boot 2.2 (05)

    BinLib: 1-1.10 (00)

    Factory Boot: 1.1 (01)

    Any ideas???

  8. Since the subject has been broached, Dave is bringing up some very good points that are important.

    In the operand window in visilogic, there is a column for initialized value, and current value.

    The current value goes blank when you go offline.

    It is industry practice (for good reason) that the online operand values are retained in the file for the program when you go offline.

    Therefore, even when offline, you should be able to modify and set the "current value" at will (both in the ladder as well as in the operand window).

    When you go back "online", it should ask you (similar to how it already works with timers) whether you want to upload the values in the PLC to the file, or rather download the values from the file into the PLC.

    The operand values SHOULD be part of the development file.

    If the operand has a "power up" value defined, then the power up value should take precedence.

    Does anyone else have an opinion on this? It is something that I have had to work around myself quite often.

    It does not seem like something that would require a huge investment in resources to achieve. Especially since some of the code of Remote Access can be copied.

    On a sice note, why doesn't remote access allow you to change operand values while online?

  9. You mean, even if I download & burn, then upload the project from the V1040 the register values are not brought over the the PC and then stored in a file ? And there's no way to set the values off line other than Power Up ?

    That's not acceptable ! This is unheard of for any plc and none of the 50+ different types that I have used in the last 35 years were like this.

    The spread sheet idea is not a solution when programming and a very big band aid to implement for the end user. From my very brief reading about Remote Access, it is based on tables of bytes, not registers. Well, that's what the Help says. Reading more says I should have a "Operand Access" item in the "Tools" Menu. Nope, not there.

    This whole project in now jeopardy of failure and might have to be scrapped and re-engineered with a different PLC and HMI.

    Remote Access reads all the values and displays them as registers, not just bytes.

    The values can be manipulated in Operand Access (without needing to open excel) by selecting the memory region you wish to work with, and hitting the ONLINE glasses.

    This loads all the values of the selected region.

    After you hit the glasses again to go offline, you can now modify the values at will.

    When you are ready to download, select "WRITE REGIONS" and download that set of data.

    You can save the RAM also in excel format.

    Operand Access "is" in the Tools Menu. Make sure you are not using Remote Operator as opposed to Remote Access.

    I agree also that:

    a) These tools should be built into the development software, and not separate utilities

    B) You should have the option of going online and uploading the RAM values directly into the project file

  10. For some reason, I have one V570 program that contains a function block that will not allow me to copy and paste it.

    Specifically, it is a PLC Net ID block Pointing to Canbus1.

    If I try to copy the block, the rung, or export the subroutine I get the following message.

    Copy/Cut Operation cannot be performed (94)

    The selection contains elements that reference named constants.

    Ironically, I have another application almost identical, with the same exact block, pointing to the same exact address, and it copies and pastes just fine.

    Not a big deal ...... just a little flakey. I had to delete the block, export the subroutine, and then regenerate the block in the new application after import.

  11. Hi,

    I have to control the tension in a Web. We will be using a V130 + LC1 along with a Load cell. What would be the right way to go about this. Should I use a PID to control the the brake on the unwinder? Or is there another way of doing it. I will be using LC1 for the first time.

    Thanks,

    Ron

    Hi Ron,

    I assume you are using some type of 0-10v or 4-20mA to Pressure regulator to control the brake? PID control is the norm. You will probably end up leaving the D gain 0. You'll want to come up with some sort of scheme to adjust the response as the diameter winds down.

    D

  12. Greetings all,

    I've got a system with a V280 and 4 devices communicating over modbus TCP. Each requires a TCP connect, so each has it's own socket init, it's own IP Config block, it's own modbus busy bit.

    I'm trying to optimize the communication traffic pattern. In CanOpen, the PDOs are buffered, and comms are handled at the chip level. The socket arrangment in Modbus TCP seems to bear some resemblance to this.

    So here's a question:

    If I were to send a PHR message on all four sockets within the same ladder scan, what would happen?

    1. The socket traffic is independent and buffered in OS/hardware, ala CanOpen. Concurrent messages are not an issue.

    2. The first message gets through and the rest get dumped.

    3. Strange behavior and error messages.

    4. V280 screen displays "Self-Destruct Sequence Initiated". Evacuate immediately.

    Thanks,

    TM

    Hi Tim,

    I've got a handful of applications running that do exactly just what you are talking about. As long as each device has it's own socket, it treats them all like separate ports.

    Without any artificial time delays built in, and working purely off handshaking, I have found that I can cyclicly both send and receive 10 ML's between four separate slaves in around a 12.5ms full cycle on a V570.

    You can discount options 2,3, and 4 on your list, as if any were true i would be in serious trouble right now.

    D

  13. Damian,

    With the current Hardware, downloading over Ethernet works out to be almost 2x as fast (not quite its more like 1.7x).

    The USB onboard the V1040 is really just a USB to Serial Adaptor built into the PLC so the Download Speeds are basically the same as downloading to a Standard PLC Serial Port.

    Ash ................. Thanks a bunch. that is great information!

    I guess though I am also dissapointed that they did the USB that way. I have been waiting for the USB connection for download largely because of a desired speed benefit. It is like getting a chocolate chip cookie without the chocolate chips..

    thanks,

    Damian

×
×
  • Create New...