Jump to content

Ausman

MVP 2023
  • Posts

    2,580
  • Joined

  • Last visited

  • Days Won

    174

Everything posted by Ausman

  1. Dave, a question that might be relevant here is what image programs do you have on your computer? Perhaps they are basically changing the way the PC handles any .png file....changing the bit format etc. which is then flowing on into your usage issues. cheers, Aus
  2. That's part of the headache I once created for myself using TEs . I have mentioned elsewhere on the forum that I always try to use the same type of action throughout a program, and mostly it is close on condition met. So the actions needed for the correct TE operation were opposite to what I was doing elsewhere, and it tied things up in knots with incorrect operations/logic issues. I know it was all fundamentally of my own doing and methods...but it influenced my thinking and approach. It is a personal type thing. The timing maps clearly show how to use them, but I still hate the way the things have to implemented using a coil and then boolean. When I first started using Vision ages ago this was a "what?" moment, as I had been spoiled with ease of use up to then....like this: I----[whatever type of input you want ]-----[00125 (timer type) Txxx]---------(whatever type of output you want)---I with 125 being 1.25s. All done in that one element.
  3. And I've just noticed that the type in your case is a TE. I personally find this the worst offender for ease of use, and operation as expected. That aside, this is perhaps one of the reasons why I always try to do an Init and Reset on any program change, even minor. I have had instances where some details seem to be retained from a previous project making odd things occur, and an I & R fixes the issue. .......even though it's not meant to........😉
  4. I can only do a quick response, one thing to remember is that timers can do odd things if their triggering is referred to more than once. FWIW, I have always disliked Vision's timer arrangements, in that they make some things complex and harder to use. Yes, you can arrange them to do lots of timings, but they pale when compared to a favourite other brand that has far more innate timer methods available, that do everything needed, and do it by essentially using only one ladder element. That is why in many Vision "timer" scenarios, I use count based systems instead, which I find are much better anyway for more complex operations. Counters are a forgotten method these days, it seems. Timers definitely have their place, Vision works them ok, but the methodology can be a complete pain. And a PS...by "Counters", I mostly mean roll my own versions. I await the rest of the forum giving me a hard time! 🙃
  5. Does this help for Alex's method? It does show popups. https://www.nirsoft.net/utils/winlister.html Please also try Ctrl + Alt + Arrow, which rearranges orientation depending on what arrow you use. On the single screen I can only work on at present, I've found it brings popups fully back on screen if I park them just visible before doing the change. I only did a right arrow and then an up, and it consistently brings them well back, not just on the edge.
  6. I also feel your pain, but I'm open to anything that might be an easy way around it all. At present I can't test any of what's been recently mentioned. Given what you've said with regards to how Alex's methods are hard to do, my next ponder is what happens if you change the screen resolution on the laptop, apply and let it stick, and then go back to what it was before? I can't see how this will help, but maybe worth a try. In saying this, I'm assuming that you have tried Taskbar Right Click and Cascade Windows, or any of the other screen related options that appear in doing so. I feel compelled to say that Office has also done this to me. I couldn't understand when it first happened....it's running but nothing showing! Load the backup, the same. Think about it......ding! My goodness!!!...that's annoying! (and I didn't really say my goodness , I said much harsher words like Ohh gosh.) cheers, Aus
  7. Chris, do either of these not work for you for all placement issues? I know it's a PITA workaround, but it works for me and I use multiple instances on the laptops anyway so it's easy. I'm also intrigued by you saying that you took care to do the save correctly in the first place, but the placement errors still happened. But to me the error was that you disconnected the monitors blah blah and then shutdown. As well, some other things to try: I've also discovered over the years that some of my laptops can do virtual screens much bigger than default, I guess it's a display adapter thing. If you can do bigger virtual screen, perhaps it might enable access to the problem popup by scrolling around on the larger areas? On the default screen size, what happens if you drag the main Visi window way off screen and then drag the remaining visible edge to make the main window much larger and then scroll the much bigger Visilogic around? In previous hunting for an easy fix, I found that perhaps VisiC/Data/DB/OPLC.ini is involved in this, as some numbers change, but that was as far as I got as I ran into permissions issues and lack of time. For now, I always try to check things on the laptop before leaving, but the best intentions always go astray......🥴 cheers, Aus
  8. This seems fine for one valve Gabriel, but I thought it had to allow for any or all of the 6 valves being in use, and only doing pump shutdown on all of them being off. 6 "master" call MBs inverted in series could start the timer, which is then linked to the pump control..... however that is done. But that's why I thought it might get a bit iffy if each valve works via a conditionally run sub. cheers, Aus
  9. Just FYI, have you read this? https://forum.unitronics.com/topic/8850-important-sub-routine-advice-updated/ Changing your usage of subs will likely make the delay much easier, and better operation all round. cheers, Aus
  10. In your case my view is that it might be easier if you worked on a counter system. Set up a counter based on SB15. Then have your various read/writes based around the counter progressing and using compares to trigger each operation. Essentially the same as the MB method, but the advantage is that you can tweak timings to best effect, and also easily manipulate the count to jump past non-responding units. Once the count reaches the end of the operations for the last unit, it resets to 0 and starts again. This method works well, and I've used it to good effect. Your timeout needs to relate to the longest period for the operations you're doing. You have to allow enough time for the full timeout plus any retry (if you're doing so) and add a few scans to that to ensure you don't run into buffer issues. Also remember that if there isn't a response in the first place your timeout time X retries is your total time. But don't forget that you can also monitor your MBus in Progress MB and use that to jump the counter to the next operation if the comms are ok, but again...add a few scans to fully clear the buffer. I have harped on about the buffer because I have found that the progress MB will signal ok, but doing the next operation immediately can eventually run into issues as the buffer is not fully cleared. ie The captain of the PLC boat says "Aye me hearties, we've hauled in them there anchor chains. Crank up the props immediately and get back to your other jobs" whereas the deckhands go "But we haven't put the safety shackles in and the anchor might run out on it's chain over time and foul the props...you stupid ol' git." If you find you could do things to a finer degree than is available using 1/10 sec, use a count based on an interrupt routine. Search help for "1.25" and select Interrupt Routines which should be at the top of the list. You can use 2.5mS or 1.25mS. Others will likely chime in with the merits of shifting to TCP, but it might be worth you trying this method and spend some time fine tuning via trial and error for best effect. cheers, Aus
  11. That's great, Boran. Please advise what virtual system you are using, and any special tweaks you needed to do along the way. cheers, Aus
  12. This sounds like you are doing the biggest read length you can, and then picking out relevant areas using logic in the PLC. But is this what is actually happening? It can make a huge difference to the number of reads needing to be done. ie read a block of 99 and using PLC logic to pick out 6 totally separate registers spaced well apart in that sequence. For the retries, you could drop them completely and work on the basis of if you get a response most of the time that will be ok. I personally retry once, but I know that others here prefer the no retry method. This would then automatically do the same delay, but might need a self-correction attempt every minute or so, to recognise when the unit comes back online. cheers, Aus
  13. HI Boran and welcome. If there is no ready solution forthcoming from HO or other forum members, consider the following...... If you are using a desktop PC one method for using "old" programs, which Micro$oft is very good at wrecking through their updates, is to have your system set up with a caddy for your O/S drive. I also have a caddy for my main "storage" drive, and have set up front panel power switches for all the drives on the system. You can thus change your system at will very easily. I have found that changing your O/S drive can sometimes lead to errors on other drives still on the system, so depending on job and the O/S you are loading from I might change the storage drive, or turn it/all of them off and work from saves done on usb sticks that are transferred as necessary. If you're worried about speed and reliability issues through using caddies, I have actually found that my speeds go slightly higher, which I've always found puzzling but accept, and I've never had reliability issues. But I only have good name units in use. Alternatively you can set up a virtual machine on the PC, which works fine as well doing essentially the same job, although I sometimes have headaches doing all comms operations ok. Another method which lots of people here do, me included, is have a number of older laptops with specific jobs in mind. The ideal is one with a dedicated serial port, and many are available in good condition for tiny $s. I have many control and device setting programs that no longer work ok on modern O/Ss and it is very frustrating when something that might only be a few years old becomes redundant. But having laptops ready to go for a particular "era" makes things very easy. With modern SSDs in them they are great, and pretty knock proof for onsite work. The overall thing is developing your own method of getting around the constant O/S upgrading that is done that completely wrecks existing stuff that worked fine before. And the original maker often can't adapt their techniques to the changed O/S, or can't justify the expense. Welcome to the ever changing world of industrial control where seemingly simple issues can lead to a world of pain for the end user who suddenly finds their program doesn't work properly any more. Many of us here still work on PLC systems running fine that we put in 20-30 years ago. cheers, Aus
  14. What Kratmel suggests makes sense but I have 120s on a Unican loop that has a 130 as the "master", and they are also using 485, and able to send and receive. Not quite the same, but in some ways close enough. I've now also opened your vlp and to me there are errors in that rung 2 should be separated out, and you actually have too much "control" of Unican going on. Try changing your method along the lines of UniCan simply doing things on it's own. I can't elaborate on this at present, lack time. More later, once I can. But I do know the Unican loop runs at 500K and the 485 on 9600. And just confirming that everything works fine, but when you use 485 to talk to the remote display it goes haywire. cheers, Aus
  15. None of these might help, but are worth asking/checking. Basics sometimes go astray. 1. What baud rates are you using? And what happens if you lower those rates? I'd start at very slow ones to trial this, and then increase to the quickest stable one if the problem is cured. 2. Ensuring that you are using correct termination resistor placement on everything? If you can, please show your wiring in picture or drawing. 3. Are you using the same power supply? If not, is the remote's supply on the same phase, and - commoned? As a matter of principle, I always have anything control run from the same phase throughout an installation. In theory it makes no difference, but it's easy to do and avoids potential (you can read that both ways!) hiccouphs. 4. All earths done correctly and linked? cheers, Aus
  16. Also have a look at the links below. And just for a laugh, I initially looked at your pictures and thought the reading was WAY off, reading the LED display as 5222. 🙃 Use the calculator and the actual raw value in the PLC to get things exactly right, by varying the input and noting all readings. And then note the max/min comments as well. Although my post/request was done in 2015, I don't believe the fix has ever been done. But I am still only using Visilogic 9.8.65 cheers, Aus https://forum.unitronics.com/topic/3540-linearization-calculator-for-all/ https://forum.unitronics.com/topic/3831-linz-minmax/
  17. Glad Alex's solution worked. Yay. It is easy to make errors in Structs, especially when being transmitted to other units, mistakes can cause issues. Perhaps have a look at this: https://forum.unitronics.com/topic/6527-with-vectors-why-didnt-i-think-of-this-ages-ago/
  18. I don't know whether it will help, but have a read of this for something to try. It elaborates a little on what Cam is saying, but shows how the system itself may change numbering. cheers, Aus https://forum.unitronics.com/topic/7718-unican-id-address-issue-and-fix/#comment-32023
  19. I've been on the sidelines on this one, but it has occurred to me that perhaps one solution would be that the plc would simply store the first send's data and details into a designated buffer area, and ONLY act on that info if a second send that is the authorisation to do so arrives correctly within a restricted time frame. If the time elapses the buffer is cleared. If the request is genuine and been correctly set up, then the sending device will perform correctly and the result will be the plc acting as desired. If the request is erroneous, nothing will change. In some ways a little like 2 factor authentication. It would add some time to the overall process, but in a lot of cases the few seconds involved would likely not matter. This process might be what others have been alluding to, or also use some of the same methods, but I don't think it is exactly the same. cheers, Aus
  20. Dan politely pointed out to me via messaging that it is Scan in use. I had only read Mal's written stuff, and hadn't really looked at the ladderwork. Specifically....."I am able to send data to my machine" which had me thinking that it was all related to sending. My main focus was on the ML not working, as I have had the same sort of thing happen elsewhere. So apologies to Dan, and Mal...how did it all end up? cheers, Aus
  21. So Mal, you are saying that although you can select ML in the copy to buffer popup, it doesn't happen and only can be done on MIs? Aside from Dan's comments, have you tried other operands available there to see if they work? In the past I have had other operands that don't work even though they are able to be selected in varied popups...I can't name specifics, just worked around it at the time after giving up, so maybe this is the case here. And Dan, as this is a send, does that not change your comment? Edit... see more comment below. cheers, Aus
  22. Unican? https://support.unitronics.com/index.php?/selfhelp/view-article/unitronics-unican-communication-protocol cheers, Aus
  23. In case you don't know, left click on DEC in the operand display changes the read to HEX, on both powerup and actual values whilst online. There is also the choice to have DEC or HEX in the popup that appears when working on them in the ladder directly....middle bottom. cheers, Aus
×
×
  • Create New...