Jump to content


MVP 2016
  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by Ausman

  1. HI all, If possible, I would like to know the different approaches people do on reading/writing to modbus devices. I have always run seqencing as a count based routine, with a maximum of 20 slaves being polled, each call being 2 seconds apart for simplicity and a slower network running at 9600. Most of the time, actions on each one are not urgent and can wait for them to roll around next time in the count, mostly reading but occasionally writing as well. I am having to add into one system a device that is poorly laid out in it's addressing. Normally I would read an entire vector out of a slave, and if needing to send things back altered, it would be adjusted where necessary and then sent back as the entire vector. I then read it again to ensure it is all correct. There might only be 10 things I vary, spread across a Vector of perhaps max 90 in length. In this case, however, the slave utilises some intervening addresses internally, so that if you read a register that you aren't working with at all, by the time you send it back the slave itself may have varied this item and writing the "old" number (via sending the entire vector with only the desired changes) upsets it's operation. It is dumb, but that's the way it works. The only way it is possible to work correctly is to do the large vector read, but then send alterations back in a myriad of separate sends, just addressing the register in question. Just to make it doubly interesting, the new unit also has the need to be read/written to more often than the rest. I have played with varying the count sequencing so that if anything read out of the unit changes in the master "calls", then it interrupts things and the register in question temporarily becomes next in line. But this gets complex if a whole host of things change at once, meaning a FIFO stack. And not forgetting that the count routinely checks the new unit 5 times as often as the rest. I can see a situation where frequent changes might even stop calls to other slaves far longer than desirable. I have also been trying things using a drum, and this works quite well. It has innate fixed time, you can vary calls all over the place using the goto, and also speed the general operation up using successful comms flags (delayed a few scans to totally clear buffers) to force progress to the next step. The main advantage is that it easily varies calls all over the place, in a fashion fairly easily seen on the initial programming screen...ie the drum layout. The end result is similar to the count variation, but totally different approaches. All of these seem very processor intensive, hence my ask. I know some people's ideas might be very profound and they don't want to share their ingenuity, but if you can, please do so. I'm sure such a discussion will benefit lots of people. Cheers, Aus
  2. Sorry for grumbling Cam. Was very annoyed yesterday with a supplier who didn't read my specific part numbers on an urgent device and got me something else, ("we thought you wanted this instead") which caused huge headaches, and it just flowed on to here. Apologies and cheers, Aus
  3. Hi self, Quick initial thoughts: Put a laptop on the same location with the same numbers and see if it connects ok. Have you sniffed around the problem network looking for clashes? Disconnected everything else? Done an initialise on the PLC? And as a side issue, I would never have a reset after a coil, like you have with MI 739 . I always separate things out. cheers, Aus
  4. Linearizing Analog Input

    Hi Newt, What modules are you using for your inputs? This is relevant as you have to relate numbers to the resolution of the device. The same rules also apply to outputs. In case you haven't found it, also check out my calculator at : Pls let us know and we'll help further. cheers, Aus
  5. But if you are having such large variations on a PT100/1000 I suspect there is something wrong in the wiring. Long run? Screened? Correctly terminated including the screen? A myriad of other things to look at. The reading should innately be very stable. cheers, Aus
  6. Hi all, I recently did extensive mods to, and then tidied up a program that's been in use for a while. Lots of the cleanup involved deleting MIs that were previously used. Firstly eliminate them completely from the ladder work, then select the description, delete to nothing, clear any powerup values and normally the "Use" tick disappears. After doing all of this, I had many MIs that still showed the tick. Hmmmm. Compile and save...again. Same thing. Right click search for them and nothing showing. Cruise around the program carefully to see if the search has missed something. No. Thinking, thinking.....Ohhh, they might have been referenced in a Watch. Sure enough they all were, so I deleted them out of that one, checked if any other watches used them which they didn't, compiled and saved again. What? Still showing the ticks. Huh? Downloaded into a 130 and then back again, with the same result. I just did't get it! They're not there at all, so why are they ticked? I tried to think of all the references that might be held in the program, but couldn't. In desperation I finally had a look in View/Operands Not Referenced in Project, and gosh....there they all are. So I deleted them from that list, backed out and the ticks were finally gone. Somewhere along the way, "Not Referenced" had picked up that they had gone from the ladder, but the "flagging" area of this didn't actually compute that at the very end of my endeavours, they weren't there at all. It kept some sort of reference up, and this showed them as still being in use. The kicker is that I had never actually run this command....it must work in the background all the time (edit: or perhaps at each compile?). Perhaps it is just a quirk relating to the MIs being in watches as well. cheers, Aus
  7. USB stick (DOK) is not recognized by PLC

    So you guys are saying that the units were completely bricked? No way possible to get them back? It seems a bit astounding to me that a lower level recovery facility isn't available when 2 of our very experienced members have had such an easily done error. Something for the creators to look at? cheers, Aus
  8. On top of Joe's idea, another suggestion: Can you run longer cabling b/n the closest pair of RC1s to reduce your total to 8? You're not loading them up much, so perhaps this might be the simple solution needed. As they're only digital I/Os this should be easily achieved with multicore shielded, even for a relatively long distance, given that you must already have cable runs b/n them somewhere and if already exposed then conduits already exist. Phew...that was a long sentence! And it also lets you do it now during construction, rather than stuff around later. cheers, Aus
  9. I'm also assuming that compile is being/has been done ok, which in theory checks for any anomalies. It would normally do this anyway during a download. If you can't post the entire program, perhaps just the sub and pictures of the calls? Also, have you done a total reset when online? Connection/Communication & OS/2nd Tab/Initialize & Reset. Very occasionally I have odd things happen after a download that shouldn't need this, but the reset has cured the issues. cheers, Aus
  10. Visilogic 9.3.1 dont recover

    It is good that you are fixed, Sjeggefjes, but it would be useful to know the results of a registry search for the old path/location. cheers, Aus
  11. Hi Scott, perhaps there isn't a return in your sub? cheers, Aus
  12. Yes, good call, Cam. For this very reason I always identify all used areas of vectors sequentially. eg. 130CbusRcv1, 130CbusRcv2 etc. I have always pondered (grumbled?) why the program does not generate such filling itself. cheers, Aus
  13. Gael, did you install, and are you running DataXport as Administrator? It may perhaps make a difference. cheers, Aus
  14. HI Flex & Jordy. I respectfully disagree with the 10ms statement, which although correct implies there is no other way of doing it. Have a look at this post and the rest of the thread, and play with things readily available: With enhanced stuff it can be 1.25ms, which can perhaps better fine tune things to what you need. cheers, Aus
  15. Jazz online error

    Hi Nikola, how did you go on this? Was the particular Jazz the problem? It occurred to me that maybe the issue is a bad interface chip which is scrambling instructions. cheers, Aus
  16. Stopwatch in VisiLogic

    Nice and neat, Joe. Ditto on the screen problem. But it has also jogged a query in my brain. I often do a direct compare for a time result, and wonder whether using a FB is easier or harder on the system. There are a myriad other things I use that I can say the same for. Is there somewhere that I can find a list of scan times applicable for any element or FB? I've never stumbled on it. Even an excel sheet or similar from the Creators would be good. cheers, Aus
  17. proportional valve

    Also, does the valve do a fixed rate of change? cheers, Aus
  18. SD Clone with OS Downgrade

    Geee......I thought I was the only one doing this for the one thing I need it for...but I'm still on 6.2!! It ain't broke yet, so I don't fix it! But it might change to Uni when it does, for the very reasons TM says. Regardless, I often fix if I can, sometimes it's the most minor component that has failed. Once, I could only get a non-RTC version of an older PLC 2nd hand but new. Needed the RTC though. On the hope it wasn't different firmware b/n the RTC and non-RTC models I purchased the unit, sourced and fitted the RTC chip, and bingo....major issue fairly easily solved. In eventually checking out the old unit, discovered the bit of swarf on the board that some careless person had created drilling above the unit letting it all fall on things below. How do I say "Fair Dinkum!" in everyone's language?! But was also able to fix this too. I'm old enough to be a fix-it bloke, but today's world has very much changed to "throw it away if it stops", with TM's observation of "we'll make it to fail in 3 years anyway" also high on the list of annoyances. cheers, Aus
  19. Visilogic 9.8.64 - Go Get it!

    I haven't upgraded yet. Does Mobile Remote Operator now work on 130s? JohnR makes it sound as if it is now part of the main program somehow. More info please!! cheers, Aus
  20. Visilogic 9.3.1 dont recover

    Hi Sjeggefjes, I've had this happen ages ago and my virgin storage methods in the post below enabled a rapid fix. Add "old" to the name of your original folder as extra security....initially don't delete anything. You may not be at this point now, but it is worth doing for the future and also great for VersionSwapper. Perhaps you could install Visi onto another similar OS puter and lift the entire Visi_C folder over? The main point I am aiming for here is for you to try to open the original file once the main program is "back to normal" before doing any uninstall/install at all. I think it will bring up the same error, but it is worth trying. Alternatively, you may have burnt it into the 130 and can get it back easily by uploading, which might solve everything fairly quickly? As a side comment, I routinely save excessively(!) under slightly different names, alternating b/n "project1" and "project2" for the very reason you have encountered. Or on more complex projects I step up through names from a progressively increased excel file. This method lets you note your changes in the excel itself, which makes changes tracking a breeze. Hope it helps. cheers, Aus
  21. Visilogic 9.8.64 - Go Get it!

    It has always needed to be installed and run with Admin privileges to work correctly. Many other Unitronics programs are the same. It is a common problem on this forum. cheers, Aus
  22. SD Clone with OS Downgrade

    Hi TM, Uhhmmmm, isn't this what VersionSwapper is for? Just do it all using 9.3. Or am I missing something? cheers, Aus
  23. USB stick (DOK) is not recognized by PLC

    There's nothing worse than a stick that's not big enough! cheers, Aus
  24. Hi Shaked, Uhhhmmmm, why? If you have your program on the SD why are you worried? If it is that you are wanting to back up your variables that might change during operation, then you could put all of them into data tables that you could periodically store onto the SD. cheers, Aus