Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 09/16/2020 in Posts

  1. Actually, there is a way to have a psuedo-popup window. It's done using a little-known and poorly documented system bit - SB 25 - "Do not draw display background". I used this for the PID tuning window on an oven project. I used a V1210. Here's the display with all the loops called "Setup" called from another screen. Pressing any one of the "Tune" buttons set a different bit in an array: I have code that watches for one of bits to go on and call this rung: You will notice that the description from Unitronics for this bit is flat-out wrong. The actual operation can be found in the Help if you search for "SB 25" (include quotes). Which pops this display without drawing the background- Giving this- Note the PID Tune is now the active window and is modal - nothing on the Setup screen will respond because it's not active. I have code that uses pointers to interact with the variables on the Tuning display that is not important for this discussion, but leaving the tuning display is simple: By calling the Setup display again without SB 25 set it just blows out whatever display is there, which is normal behavior. @Patrick - I would not call this "simple" in UnitronicsLand and the suggestion of others to just call another nearly identical display is what I would normally do. I used it in this application because I needed a way to indirectly interact with a window instead of creating 22 slightly different instances of the same thing. Joe T.
    3 points
  2. Sadly not my joke....... My wife asked me why I was whispering in the house. "Because Mark Zuckerberg's listening," I whispered. She laughed. Alexa laughed. Siri laughed. 🙈 cheers, Aus
    2 points
  3. There's a reason I knew to look there first. Welcome to the "Gah! I am such an idiot!" club. Been there. Joe T.
    2 points
  4. Just for fun I wrote the program for the above.
    2 points
  5. Hi all, thought I'd start a new topic where anyone can post a small snippet of a method they use and are happy to share. Just initially a screenshot or link that will get the brain cells of forum participants working hard as to what it might be used for. If it ultimately gets lots of different things submitted, it might become a little clunky and need "linked numbering" here in the first post. To this end I suggest that the time turnaround is a maximum of 4 days between submission and telling the answer, unless it is already figured out by someone. The answer is then given and a new one submitted. We'll see how it evolves. I'll start the ball rolling with the next post, which I think is an easy one. 🤔 cheers, Aus
    2 points
  6. Hi all, to start explore I suggest to check HTTP REST APIs for your WhatsApp (meaning some server you address via REST calls on HTTP and it send a WhatsApp message) . For example: https://github.com/sinch/docs/tree/master/docs/whatsapp/whatsapp-http-rest https://www.twilio.com/go/whatsapp-api-90-access-1?utm_source=google&utm_medium=cpc&utm_campaign=G_S_NB_EMEA_Whatsapp_ROE_Emerging_EX&utm_adgroup=&device=c&network=g&keyword=whatsapp integrator&creative=494025116831&placement=&gclsrc=aw.ds&gclid=Cj0KCQjw38-DBhDpARIsADJ3kjkFQR_Wbmbx9w6-1AjPTuwt35VN4vhB2FmhoVPHBl-doubeTtK6WaAaAqR0EALw_wcB It possible (no guaranty, we did not saw such API yet) the UniStream REST feature could trigger it. There are HTTP REST APIs free trials you can check out to do "proof of concept". (again, no guaranty, but worth to invest a few hours to check it)
    2 points
  7. Kratmel's card.......I'm still gobsmacked when I see a TIF card with 512GB. I point out to blase youngies how much separate stuff is actually crammed into that tiny space, and they still don't really seem that amazed. How times change. And let's all remember this is the stuff that's available off the shelf, not hidden away in some development lab. John's sliderule....There was a fantastic episode of "Utopia" here in Aus a while back. An older guy was brought into the office and was checking out project costs he thought hugely excessive, in no time at all. Did it all with a sliderule, much to the amazement of all the resident experts who would normally take months to do it. If you haven't seen Utopia, it's a satirical look at Govt bureaucracy's fascination with meaningless crap, whilst actually achieving little work. So much variation in concepts episode to episode, they have to have info from actual offices in the first place! And the imitation of govt project promotional material is so spot-on. https://en.wikipedia.org/wiki/Utopia_(Australian_TV_series) cheers, Aus
    2 points
  8. I remember seeing a memory device similar to this at my first mentors workshop back in the mid '70's It was an archaic thing at that point, but I seem to remember that the memory bank included inductor/cap/resistor circuits that "remembered" their last logic state, and transferred that with some sort of FIFO logic. Crazy thinking back in those days, but we wouldn't be where we are without it.... 😵 Now, what happens when you throw one of these in front of a young'un? I still have my first TI-35 scientific calculator that I bought in the '70's....
    2 points
  9. I ran face-on into an application where I wanted to concatenate the time and date into one string. The RTC to ASCII function in the examples considers every permutation of Date OR Time, but not both. I tried following my own advice and using the Insert String function but it didn't work the way I thought it did. I studied the RTC to ASCII example and realized the best way to manipulate strings is to make use of buffers, controlling exactly where characters land using the Copy Tag to Buffer, Fill Buffer, and Copy Buffer to tag functions. The thing that worked best for me was to start from scratch and write a generic Concatenate function that takes two strings as arguments as well as the number of spaces wanted between the strings. I only need one space, but this could easily be modified to pass the separating character to it. I'll leave that as an exercise to another. Enjoy. Joe T. Concat.ulle
    2 points
  10. Re the Help page woes, you all need to have a 95 year old Parent. You would have solved it in a flash. I am forever fixing computer issues he creates by having clunky fingers that click buttons as he moves the mouse around. To compound things, he "reads" with the mouse . The end result is that all sorts of internal edges and other things appear/disappear and I need another remote fix session to figure out what he's done this time. "Damn computer's broken!" "Welllll...no it's not. Just the user has stuffed something up again". I admire him persisting with using it, but it sometimes takes me ages to figure out how he's actually done stuff in the first place! The internal margins issue is very familiar to me! If you haven't noticed, in the Help window there are Show/Hide buttons directly above the pane's normal location. It is amazing how often I completely miss something as simple as this. I guess it is a case of familiarity breeds 'don't even look at what's there' with regards to menu items. But a pet parent is also a great teacher, albeit indirectly. 👴 cheers, Aus
    2 points
  11. @Cara Bereck Levy Take a look at this post, especially near the bottom- If you look at the post reference chain within thus post you'll see that the question of reading floating point values from energy meters is a very recurring theme. It's a common occurrence for word order is always backwards from what Unitronics is expecting. Ask the Creators how hard it would be to add a new type of Operation to the Registers tabs for function 3 and function 4 - "Read Holding Registers Swap Words". If you look at the Official Modbus Protocol Specification- https://modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf Search for the word "float" you will find no references. This means the byte order of an IEEE 754 floating point value is not specified anywhere and repeated questions on the forum point to the fact that it's kind of the Wild West out there as to how various manufacturers decide to implement it. Unitronics would benefit from making this easier for the end user, as many of them are unaware of this issue. This dovetails with the release of the new UniClould product as we've seen energy meters are a common addition to a UniStream system and that data will certainly be desired on a UniCloud dashboard. Just my 2 cents. Joe T.
    2 points
  12. So, the answer is no then? I noticed that if I do "Show structed text" in ladder I get a _op_op version of the tag. If I use this code, for example System: "RTC time.Seconds" in the C function I can call and use it and it appears to work. Am I breaking things by calling this code in C function?
    2 points
  13. I think that perhaps my local mower shop is still building their website! cheers, Aus
    2 points
  14. No. Modbus is a handshaking protocol and it will take too long - you're doing good if you can get 10 reads/sec with Modbus. kratmel says this device has CONTINUOUS FAST WEIGHT TRANSMISSION mode. I didn't look in the manual, but this tells me you can put it into a mode where it just sits there and broadcasts data as fast as it can, regardless of whether someone is listening or not. I've worked with scales that do this. The block kratmel is talking about is located under the FB's menu and is called "Protocol". It lets you roll your own communication - do not be afraid of it. In your case you'll set it up to listen to the serial port for whatever is coming in and set a bit when it receives something. For starters take your module and connect it to your computer serial port with a terminal program. Configure it with the CONTINUOUS FAST mode and see if you see a whole bunch of weights on the terminal program. Then you can determine how to make it work with the PLC. Joe T.
    2 points
  15. Thanks for sharing the solution. I never considered that UniApps would have different behavior than the UniLogic setting. Joe T.
    2 points
  16. You can search this on the internet for detailed explanation. It means that Integral component has maxed out over time and is contributing 100% to PID output. Maybe integral time is too slow or system cannot reach setpoint fast enough. If this makes oscillations or any other problems you can force Integral component to take some other value, there is a function block for that in PID menu.
    2 points
  17. Swervo, there are so many different styles of schematics you'll have to decide in the first place which way you want to go. To me it is personal preference. There are different names world wide for different style types. I actually hate modern style "line diagrams", "riser style" as I find them counter-intuitive and hard to understand at a glance, as you need to constantly reference descriptions. I much prefer older style where the entire layout and connections are visualised. Sometimes these are called pictorial, maintenance, schematic. This link https://www.nrc.gov/docs/ML1025/ML102530301.pdf is a good example I quickly found of most standard methods, with actual drawings starting about 1/3 through. cheers, Aus
    2 points
  18. Joe, do you mean like this? cheers, Aus
    2 points
  19. Surprisingly, people of about the same age in different parts of the world show the same habits and behavior. The same was demonstrated by my grandmother when she came to us after overcoming more than 2 km. However, she always thought of the reason why she came. One of these reasons is special to me. She said: I came to you because you will take me home by car. 🚗
    2 points
  20. Never had such a request, so I did it as an exercise. As suggested in topic @kratmel posted when dealing with time intervals it's best to use RTC to UTC functions, so you manipulate only with one DW variable. That's also my experience. Sedmica.vlp
    1 point
  21. Well, I learned something today. Thanks @sgull!
    1 point
  22. This is a good suggestion. One of the issues I struggle with when programming with UniLogic (after >12years with VisiLogic) is that there seems to be no effort made by the developers to minimize keystrokes. Indeed, it seems like they go out of their way to increase the number unnecessarily. After spending a day at work with UniLogic, I feel like George Jetson:
    1 point
  23. Sweet! Thank you @Cara Bereck Levy!
    1 point
  24. Baa humbug. I remember using cassette tapes, but others here, not naming names Kratmel, have punched tape! --------------- And now for another piece of silliness tailored to the forum..... A Unicornics programmer goes to the store. (Unicornics 🦄 programmers live in Utopia where all programs work perfectly first try.) Their beloved tells them: "Bring a bottle of milk, and if they have eggs, get a carton of half a dozen." They come back with 6 bottles of milk neatly placed in a spare cardboard box they got the store to give them, and say: "They had eggs." I know it's an oldie that used to be about mathematicians, but hey, if you smiled it's worth it. cheers, Aus
    1 point
  25. Maybe best solution https://www.geckodrive.com/support/using-current-source-plc.html
    1 point
  26. 1. Delete MI 8 power-up value -Sample Time. It will be calculated by Autotune. 2. Water temperature range is 0 to 100. It is recommended to set: - MI 9 =0 (0.0) - MI 10 = 1100 (110.0) 3. MI 0 show temperature in 0.1 C/F. 4. Change User Set point MI 47 format to 4.1 Entering 55.1 from display will be represented as 551 in MI. 4. Use MI 47 instead of MI 3. 5. Sample MI 0 in 4.1 format. 6. Delete nets 2 and 3. Test it.
    1 point
  27. You can't compare an MF to an MI. I don't know why it let you enter that. You'll have to convert the MI to an MF register. Joe T.
    1 point
  28. 32767 is a fault code. This is what the spec sheet says:
    1 point
  29. Hello everyone! I have 30 pcs of sm35-j-ra22 plc and they are all connected to ethernet line. I want to view and control the data I get from these on the USP-156-B10 HMI Panel. How can I do that? I think i have to use "Scanner Adapter" and define all of SM35 PLC's ip.
    1 point
  30. SM35 series PLCs does not support Ethernet/IP. You have to use MODBUS TCP. *Only UniStream series PLCs supporting Ethernet/IP.
    1 point
  31. I use Joe's famous State Machine in nearly every project in one way or another. It is terrific at organizing an algorithm so that it can be understood and followed.
    1 point
  32. Here's the terminal I use- https://sites.google.com/site/terminalbpp/ It's not pretty but all the settings are right up front. Plus you're going to need a USB to RS485 adapter to see the data on your PC Joe T.
    1 point
  33. TLB have internal CONTINUOUS FAST WEIGHT TRANSMISSION PROTOCOL 300Hz weight data with minimum baud rate 38400 baud over RS485 provided. I think - you can apply Protocol FB and read weight in 1 read per scan rate. As you use Ethernet for visilogc connection - you have free PORT1 on V430. It is simple and fast solution. Another net solution has faster transmition (CANopen for example), but comm command not possible to place inside interrupt routine. Than real rate not faster than 1 per scan. I test CAN open servo drive position readout - 1read per scan works - faster maybe possible but i cannot test CANopen readout with interrupt.
    1 point
  34. No. No it's not. Saragani is one of the Creators. You take take his word on it. Send this issue to support@unitronics.com and see what they have to say. This sounds like more of an OS bug. Joe T.
    1 point
  35. I use two timer (0.5-1sec and 3-5sec) powered by button contacts. Increment block is operated by: -|P|- for button -----> one increment, -| |- for button and -|P|- for SB3 (1sec pulse) and -| |- for timer 1 (0.5-1sec) ------> 1sec increment, -| |- for button and -|P|- for SB7 (0.1sec pulse) and -| |- for timer 2 (3-5ec) --------> 0.1sec increment. Than single tick, slow and fast increment with ajustable changover possible. If use -|P|- and -|N|- for SB3 - increment time is 0.5sec. If user need to change many values - this method is use only two timers for all increment-decrement operations. User only must to operate this timers via needed buttons.
    1 point
  36. Hi @Swervomotor A long time passed since then and you may have noticed that both requests had been implemented. The import/export structs is not done through library, but you export to a file, then you can choose to place it wherever you want and use it again Hope this helps
    1 point
  37. Looking quickly at the specs, the simple way that you may have overlooked is to use one of the clock's relay outputs to activate at a given time second or minute, and this relay close is run to an input on the 130. The 130 then registers the rising input as "I need to set the time to 05:00:00", say. This method does not need any networking protocols etc at all. The downside is that there is no real "truth" in the setting, it relies on the plc's RTC being reasonably close to the time. But given that this could essentially involve 24 hours, the likelihood of error is minimal. I often incorporate time adjustment into programs I do that need to be fairly accurate. I carefully monitor the plc over months and see what drift the RTC is doing. At a suitable time period I add or subtract "x" seconds to bring it back close to real time. The same sort of thing would be done here. I'd suggest you do it at the latest hour turnover before anything needs to happen at school, and then it will be close all day. The most drift I've seen in a 130 was about 4 minutes a year, so an update every day would easily cover your situation. The logic here is 4 x 60 essentially = 240/365, which is a negligible error in a single day. Especially given your system is probably only working in 12 hours of that day which means even with rounding your 130 clock will be perfectly in sync on seconds with the master. cheers, Aus
    1 point
  38. At present I can't spare time to do this. Someone else may. The initial point was for you to try, the forum isn't necessarily about providing ready made answers, it's about learning as well. If you step through the words, relating them to ladder elements, you'll likely figure it out. cheers, Aus
    1 point
  39. Hi, When use mechanical switch, then it's contact(s) "bounce" when fast change it's position. Normal Digital Input has internal filter, which "neutralize" contact(s) bouncing.HSI has no such filters. You can use button on PLC display to start timer and generate fixed length output pulse. Use this pulse as input for high speed counter. Then everything should work as supposed. B.R.
    1 point
  40. Hi, Please visit unitronics Helpdesk Portal and search for SD word: http://support.unitronics.com/ You can find number of articles. Review next: What brand of SD cards can UniStream PLCs support? What is the SD maximum size? Does it support SDHC? https://support.unitronics.com/index.php?/selfhelp/view-article/what-brand-of-sd-cards-can-unistream-plcs-support-what-is-the-sd-maximum-size-does-it-support-sdhc UniStream SD cards- Must I format an SD card in order to use it with UniStream? https://support.unitronics.com/index.php?/selfhelp/view-article/unistream-sd-cards--must-i-format-an-sd-card-in-order-to-use-it-with-unistream Prepare Disk on Key (DOK) or SD card to work with PLC https://support.unitronics.com/index.php?/selfhelp/view-article/prepare-disk-on-key-dok-or-sd-card-to-work-with-plc Or format it with SD Memory Card Formatter https://www.sdcard.org/downloads/formatter/ Maximum supported SD card size for Vision PLCs is 32 GB, but it is recommended to use SD card with maximum capacity of 16 GB. *32 GB just show error when prepare it from SD Tools. SD card should be formatted as FAT32. Other formats are not supported. Last thing - it is good to make first format as Full, not Quick. this will help to detect SD card defects. Hope this helps to have active SD card. B.R.
    1 point
  41. Modbus TCP would be the way to go. Get an Ethernet card for the V430 and set it up as a Modbus Slave. I did a quick search an found a Python Modbus library called pyModbus that should work for you. Joe T.
    1 point
  42. hi damiankk, in my opinion with 100 variables you can use the modbus way...what you have to be sure is that at the PC side the python scrip has to use an asynchronous method. I am not so deeply inside python but I found THIS example about how to implement an async modbus_TCP_client.
    1 point
  43. I had a Hyundai Santa Fe once upon a time that strangely had the calendar date displayed on the dash. It was set with the month day and year and knew which years were leap years. However, the subroutine that it went into to allow February to have more than 28 days failed to have an exit. So, on leap years it would continue to count up from February 29th, each day incrementing up. It was easily fixed by resetting the date to March 1st, but I had to see what it would eventually do. Each day it incremented up until it hit February 99th, and since there were only 2 digits, I couldn't wait to see what it would do the next day. You would have thought that maybe it would go to 00, but it didn't. It completely lost its mind and displayed nonsense symbols every day thereafter.
    1 point
  44. It's very easy with the Schedule function block. I've attached the program from the UniLogic Example Projects collection, which is on the download page. I recommend everyone who plays with UniLogic download this as a reference. Joe T. UniStream_070_schedule.ulpr
    1 point
  45. Please follow the steps below: 1.Close VisiLogic or any Unitronics tools. 2.Go to "C:\Program Files (x86)\Common Files\Unitronics" 3. Rename "Eth_Favorites.evb" file to "Eth_Favorites.evb.old" 4. Open VisiLogic and enter the favorites again.
    1 point
  46. That looks like a combination calculation in probability math. If so, my hat is off to you - I would never have thought to try that in a PLC. Wait, are you creating a PLC game? I volunteer to be a beta tester!
    1 point
  47. No! Either place both sets of conditions in the same ladder rung leading to the coil, or create two intermediate coils, one with each set of conditions, and use those intermediate coils in parallel to activate the original coil.
    1 point
×
×
  • Create New...