Jump to content


UniStream & UniLogic Beta
  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Damian

  1. Hi Vidmas, "Technically" you should either be using a crossover cable, or be going through a switch. I tested my V570 connected with a patch cable directly to a different device, and it did work, so it is hard to say if this is part of the problem. It is better to rule it out though. Your IP settings have all changed since before? Why a subnet of Please change the subnet back to on both the Unitronics and the Ventus and in all the software setup. So judging by this, your PLC is at and your ventus is a Somewhere in your Ventus configuration you should be able to set the Slave adress of the unit. This is separate from the IP address. You should find it and make sure it is set to 1.
  2. Here's another way to skin the cat. I'm not sure how "wise" it is to do it this way though. D
  3. Up until now, I have been using the 2.5ms counter to get the best resolution possible on timing functions. However, I have always noticed that the Interval Timer Function gives a value in units of 10 microseconds. Playing around a bit, I noticed that the interval FBs are fairly flexible (ie. they don't have to execute all on one scan, END can be processed before start without generating an error, you can have starts and ends in different locations, etc). What I am wondering is, where is the counter the interval function is accessing. I don't see any system word that has anywhere near that resolution. Why isn't it an SDW like the 2.5ms counter? Also, Why is the interval function presented as only a "DEBUG" function? It has potential usefulness in applications beyond use as a debug feature. D
  4. Fabios, Your right! I was wrong about being wrong. Some other considerations .......... I don't know what your scan time is, but if it is large compared to the 2.5ms resolution it would help to make the code interupt driven. Also, I was just playing with the "Debug" interval function. It gives a resolution of 0.001 ms on the time value. The actual measured resolution will still end up limited by your actual scan time or interupt reaction time, but it would be the most accurate time possible from what I see. D
  5. For the first time today thought I might check out the PING FB. For some reason, the PING is only successful "every other time" I enable the PING block. I am enabling it with a one-shot. I noticed in the help file PING is shown directly connected to the rail with no conditional logic. I am using this wrong? Is their any obvious reason why the FB would alternate the successful condition? D
  6. Hi Fabios, Here is a reworked example. I noticed after testing that you needed to divide from 300000.0 and not 30000.0 Let me know if you have an questions. D
  7. Hi Fabios, I have often had to do very similar to what you are doing. If you want better resolution on your measurement you will need to take a different approach. If I were doing this I would instead measure the time between pulses (bolts). So For the below I have defined the variables as........ XDW25 = CapturedTimeCount XDW26 = OldCapturedTimeCount XDW27 = TimeCountDifference MF2 = TimeBetweenPulses in (ms) regular DW will work just as well as the XDW Make sure trigger is a "transition" unlike what is shown in the picture. 1) Rising edge of pulse is seen 2) Store CapturedTimeCount into OldCaptureTimeCount 3) Store the clock value (ie. SDW3) into CapturedTimeCount 4) Subtract OldCapturedTimeCount from CapturedTimeCount and Store in TimeCountDifference 5) Multiply TimeCountDifference by the float 2.5 and place in TimeBetweenPulses "this will give you the time between pulses in miliseconds as a float". 6) Repeat from Step 1 Now to get RPM, RPM = 30000 / TimeBetweenPulses (this accounts for the 2 pulese per rev)(Just make sure you compare for TimeBetweenPulses > 0 before the division) If the numbers are a bit jumpy, you might want to perform a running average over 3 or 4 values. The Filter FB is handy for this. D
  8. I had this exact same problem last year. I was using the "silver" setting in XP. It blacked out a lot of text fields. It is burried somewhere on the old Forum. As someone who has done some PC programming with VB and VC, I don't think it can easily just be blamed on windows. There are methods available to the developer to overcome changes in the windows settings. And no, I'm not from Jersey .............. however I just visted NJ for the first time ever a couple days ago. Possibly maybe it is something contagious?
  9. Hi Vidmas, There is no point in continuously trying differnet sockets and different ports. You will save yourself a lot of time by restricting yourself to port 502 and Socket 2. Can you please send a new screen shot (like you did before) now showing your code with the modifications that were suggested? What value did you use for a slave address? It doesn't make sense to me that you have a value of 0 in SI147 if you have SB142 on with the setting we suggested. What is value of SI143 after running the suggested settings? Are you going through a switch, or are you directly connecting the two devices? If it is a direct connection, are you using a crossover cable? D
  10. So as soon as you get a bit set in the 2^12th place, your numbers are hosed until you then get a bit set again in the 2^8th through 2^11th place? Most likely the DF1 block on the UNI side. What memory address are you mapping to and from? Can you post the configuration parameters you are using?
  11. When you say "socket didn't initialize". Do you really mean that "socket didn't connect"? Check these status bits and post the results. SB141 should be on SB142 should be on SB142 will come on once the socket "initializes" SB149 will come on once the socket "connects" SB151 must be ON What is value of SB167? Do you have SB168 set to 1? What is the value of SI147 Make MB151 a normal contact (not positive transition) In your IP config, your slave address is set to 255. Your device may have a modbus address you need to set this to. A good guess would be 1 Your communication timeout is pretty small (25) try increasing to (100)
  12. I think this be exactly the point. 10 years from now are you going to be telling people not to expect too much from your product because it was written 20years ago?
  13. The honest answer to that question is that your code isn't very robust. There is no error handling. There is nothing to check how successful the communications are. If you search the topic "Modbus Wha?" in the forum you will find a discussion on modbus communication and how various users have chosen to handle it. Some guys even poseted snippets of their code. If you want your code to be robust then this thread should give you ideas on how to make it so. Delays can sometimes help, but I have rarely seen times where it is necessary. All of the modbus I have done to date with Unitronics has not required any artificial delays inserted. In your case as well, it would be helpful to buffer your incoming data. Set the buffer to all zeros before your read request. This way, after your read request the buffer remains zero you know that you didn't receive new data.
  14. If he is reading them in as double intergers they may already be effectively consecutive. But yes, He would be much better served to get all 7 registers and just ignore the unnecessary values. He'll get much better updates rates and have a much simpler program.
  15. Some more "Next Generation" requests ............. Give the product line a different name than "Vision". It gets confused because people thinking we are talking about "Vision Systems" (i.e. Cognex, Keyence, etc.) instead of an HMI/PLC. Make it so that you can open screens and subroutines in their own windows. It is nice to be able to have one window open with say an HMI page while the other maybe has the ladder for that page. Allow the windows that hold the screen and ladder subroutines to be scaled and zoomed at will. Make an additional Properties/Colors tab just for Ladder. Allow us to choose to different colors for the background/text of comments, variables, function blocks and such. Build the functionality of "Remote Operator" into the development software. or At the very least, allow the battery backed values of the operands to be uploaded, saved, and downloaded to the PLC using the developement software. Allow us to customize the toolbar with our most used elements. Do away with the current Copy/Paste behavior that virtually everyone dislikes. As an option, allow elements to be moved around with the mouse while the connections automatically reform to fit. As an option, allow connections between elements/function block to be made by simply choosing the two nodes you wish to connect and having the software automatically generate the wires. As an option, allow an insert mode that will shift ladder elements over and down automatically to accomodate the new elements. NEVER make me have to perform more than 3 clicks to get to a property I need to change. Especially in a copy/paste scenario where I'm maybe just changing the operand. Allow me to type my operands in directly into the pertinent fields rather than invoking another layer of windows to select the operand. Add most of the HMI element setup properties to the properties window (i.e. Link, Hide, View, Max, Min, Format, etc.) When I am doing a copy and paste of several HMI data entry variables, Usually all I want to change are the Linked variable, the Min range and the Max range. If these were in the properties window it would speed that process up tremendously. Don't make me have to hit "zoom out" to find the page linking. Allow me to use an indirect variable to jump to a label. Or in other words, allow me to jump to a numbered step and not execute and code in between. If JumpTo value is invalid or out of range either just jump to the last RET statement, or allow for an "out of range" or "Other" label that gets all jumps to undefined numbered steps. Allow me to have a floating watch window for operands while online. Allow me to make online changes. Don't limit me to only 9 colors on 3D buttons. Give me an option to default timers to units of milliseconds. Give me an HMI scratch pad off to the right that allows me to develop and size HMI elements off to the right and just drag them over to the actual screen once they are the way I want them. Scrutinize everything with the questions (Could this be made easier or more intuitive? Does this arrangement maximize the speed of development (both ladder and HMI)? Are we forcing the code developer to perform operations that could more easily be automated? And most importantly, keep up the good work on what is undoubtedly the best "free of charge" development software on the market.
  16. Hi Dah, The 15ms scan time you were getting .............. was this the average scan time or were you performing all your data table operations every scan? Did you ever do anything in regards to trying to capture the max scan time? With what you and Tim are explaining, it almost sounds as though during the DT execution the PLC may suspend operation and goes to service something else momentarilly (perhaps checking IRQ states, etc) and when it returns to complete the DT execution it forgets the proper state of the transition that enabled the function. D
  17. Hi Ofir, Thanks for your reply. I do understand where you are coming from with the SD card "working on those layers". Is it possible though that a function that clones just the BinLib and Boot from the SD could be placed on the same layer that services the communication (or in other words the same layer that allows them to be downloaded by communication)? Has Unitronics given any consideration to adding a feature that allows the unit to "boot" directly from the SD card? Damian
  18. Hi Stein, Emil, Cara........ Is there are reason for doing this way? In reality, the whole point of cloning is so that someone using only the SD card can get a new PLC to act identical to their replacement without having to hook up with a computer. Otherwise it defeats the purpose of it all. Why not have it clone everything? Is it just physically impossible for it to perform the tranfer of the Boot and BIN from the SD?
  19. I never noticed this until you just pointed it out. If it is just going to be this one occurance, as a work around, you could use a binary image instead and create the text as an image. I know its a crummy workaround, but it is guaranteed to work. Hide really should cause the thing to completly disappear though. IMHO i would consider this a bug.
  20. Hi TM, I like that idea as well. As another alternative, maybe they can make the trending axis a variable. That way you could either assign Unitronics system integers to it if you are looking for a time based axis, or you could assign a User integer for this and have complete control over it. Kind of like a "virtual" time axis. D
  21. That was the first thing that went through my mind. Might be cheaper and easier at this stage to go Ethernet instead.
  22. There are many other HMI software packages out there that are free. Often their graphics are installed as pic (gifs, bmps, etc). Sometimes if they are imbedded, you can do an export to a file (usually a feature to allow you to customize). I've been know to share graphics between systems.
  23. Not sure what exactly your doing, or what you hope to achieve, but it sounds like you are performing a simple "registration" type move. In these types of systems the sensor is not meant to stop it immediately. It is normally setup with an offset between the sensor and the actual desired stopping point. This gives the servo some distance to make corrections and ability to decelerate to a controlled stop. This would also make the stopping point non-speed dependent (within reason). I think for us to provide you with better suggestions you will need to better explain exactly what your system is and what your expectations are.
  • Create New...