Jump to content

Truman E

Members
  • Content Count

    7
  • Joined

  • Last visited

Community Reputation

0 Neutral

About Truman E

  • Rank
    Newbie

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I've made a lot of progress and got through the demo of the machine. A few notes based on discussions above: The reason my linear function performed differently than expected is the configuration under the I/O section allows for custom settings. Apparently, early on I had changed those values from 0 to 100, which works fine for this application and explains the erroneous output from before. If I had the default values in place the suggestion Joe made above would/should have been perfectly OK. I had a bad encoder sensor which was throwing all kinds of difficulty my way during bench tests. Now repaired. Timer value input was easy once I selected the correct option in the box setup, from the current value to the preset value. d'oh I am going to keep working through the development and debug process and will post final program &/or links to other discussions related to this project here to hopefully shed light for other programmers one day. Thanks again for all of the assistance!
  2. So I learned a few things regarding this program this evening, outlined below. Updated program attached. This one nearly works, I'll finish functional testing tomorrow. 1st- I was missing the TimerOut.bit bit. 2nd- Four Coils, Four Bits... Zero Coils, ZERO BITS... lol, a little fifth element humor 3rd- Not sure if this was holding me back but it's generally not a good idea to reset a rung within itself. My logic was power flow> 1, 2, 3, set next, reset this. I was able to "get away with it" in a few spots. Off-topic but same program: I still can't figure out how to use the Timer Box. I have read only unchecked and the enable data entry bit set to a constant-on bit. HMI input once you press OK just resets to the preset value. (settings page) test7.zip
  3. Program Submission & Debug Questions I am actively searching for a solution to my bugs on the forum. I would normally delay reaching out for help at this point, but I am short on time on long on need. Apologies. It seems as though I am missing something in the code to allow for correct function. It may be when I reference an output to a coil or a bit to a coil that has already been used once elsewhere in the program, same function or not. Should I need to use Jumps? I tried combining all of the instructions into one function and that did not make a difference so I wouldn't think so with this type of program. For a direct example, with the current program if the user inputs Nozzle UP (HMI advanced screen) the Noz up command is not picked up in the instructions. Motion control function, nozzle dive control. Noz up has been referenced more than once. What am I missing? I am going to keep beating on it. I'm thinking I'll try to add more tags.?. It's along the lines of what I faced early on in the project. Is it too complex of a rung somewhere tripping me up? I tried to follow best practices on the logic coding, and am most certainly still learning. There are still a few components I have to add and will continue to work through these next week, they aren't necessary for the initial trials. Future build-ins includes the optional resume from emergency stops, formula saves, process monitors, cycle times, and user access controls. Notes on Linearize with the analog V out – I used the Y2 value to scale so that the input sliders would remain 100% useful throughout their range. When I put in the raw value as suggested it output way too high. It seems as though 100 is being seen as 10.0V, so when it hit even 1% on the scale, value out was 74 and the real measured output was 7.4V. Unitronics for upload.zip
  4. Howdy, I’ve been a little preoccupied and out of town getting married, apologies for the delay in response. I have been working through the suggestions here, and appreciate the input. 1. Joe, Samples of the zero speed concepts I have now are below. One is set based off of a timer as I considered as a possible solution, with the timer set to 0.1 sec to ensure no motion. The other is my interpretation of your suggestion. At this time I would think that either option would suffice but I do like the integration of the frequency as a trip point, it will be a little simpler to program. 2. I will leave props to you in the code comments (if anyone ever sees them other than us). I have not been near the prototype to trial whether or not my code is functional, but I do see how you are handling the situation and it should work fine once I iron out any kinks on my side. 3. I will set a simple e-stop for now and program in the resume function later, as this project has to be live in a few days. I do understand better now how to implement, but the time to do so and validate is possibly out of range for this first run for next week. The program will be shared very soon but it has been two weeks since my last post and I want to keep this thread going. THANK YOU!
  5. Thank you, Joe. I see exactly what you're saying. These controllers are much more powerful and capable than the systems I've dealt with in the past. I know that the voltage output would not be capable of reversing a drive; I will be using a separate trigger to control drive direction as you mentioned. The question is control over the analog output during different machine states, which I think I can figure out with the references you have given. Thank you for the detailed response. I will revert back here once I have reviewed these notes and written these program steps, along with the full program for your review. I am trying hard to glean as much information from the forums as possible, and do frequently reference the available documentation.
  6. Thank you both for your input so far! Let me try to break down the individual items I need to find resources for, perhaps it will help us find the answers I need to execute this program (or maybe I need better search terminology): 1- I’ve been pondering and I’m pretty sure I was over-thinking it. I can use the encoder input for a TOF timer which I can use to set a zero motion state. I.e. No reset in 0.1 sec, then no motion. I was thinking too narrowly about my encoder input, only as speed/position. Solved? 2- Let me restart perhaps. How do you use an analog output? Can I reference examples or have the process for controlling the output better explained? I can probably figure out the nuances if I can find better examples to work from. 3- Is there a pause/resume option for the logic other than the idle command? I want the same function but with more control. Perhaps Idle until an input changes? I would use the emergency stop input as the idle command on, then trigger a reset or resume from where it stopped - the operator would choose to let the idle expire (resume) or initiate a "return home" command. I've got everything else down, but the "idle." 4- (3a) It would be extra neat if the hypothetical Idle would be able to apply to specific processes? This also makes me feel like I’m missing it as in #1. I’ll keep pondering and reading. I feel like I’m close to getting it figured out. Ausman- this particular situation has little risk to life or limb but mishaps could be costly still. The operator would only need two possible recovery solutions: one- if the stop were tripped unnecessarily, the user could select to resume from where the system left off; two- the e-stop were pressed due to or in prevention of a mess, in which case the ideal recovery solution is to keep the motors stopped and reset motion to home (this is the easier one, for sure). -- and I fully agree with your process. We have to consider every eventuality and risk, along with how to handle exceptions. I've been designing and building this entire machine around that premises, including "fail-safes" which include a number of additional sensors and logic steps. Flex- Safe Travels! While I understand that the implementation will certainly take more than a few pointers (and has already), and I'm definitely on the learning curve with UniLogic- I am very interested in learning this incredible development platform. VisiLogic, with the in-depth support, was very appealing when I was contemplating which HMI and PLC to use for this project. There have been a number of times where I found useful advice under the VisiLogic platform only to discover it was not available in the same way as UniLogic, e.g. button functionality, which I did find a work-around for that seems to function well. I ultimately decided to run with the UniLogic as the controllers have functionality that I will need for future projects. Thank you again!
  7. Good day, I need a few pointers. I am fairly new to Unitronics and the UniLogic systems. I have some experience with ladder logic from past projects, the most recent of which used the Keyence ladder builder software. It’s like coming out of the Stone Age! If I need to separate this into sections please let me know. I appreciate any guidance you can provide. I am working on a project for a production machine. The machine is utilizing modular design from discrete components that can function on their own, so I am somewhat limited on my approach options. I will try and outline what those are as I go along if they are important. I’m using a USP-156-B10 with a WCB1 and a UID-0808R with the latest software available (as of 11/21/18). Currently, I have three items to review. I think that will be all I need help with, as the rest of the control program is very straightforward (now). Item 1. I need to write code for a change over time function. I am reading off of a motor drive encoder which I need to ensure is at 0 speed (stopped) before advancing. As the drive is not a servo, and the drive could stop with the encoder reading high or low, I need a change in condition over time. While it is simple to say, I have not found a solution working through the manual or the examples but it is possible I missed something. Ideal logic is: no change in state (can be high or low) for x amount of time (x being relatively quick, perhaps .1 sec), in a continuous readout (no reset if possible to allow for continuous operation) that would change the status of a binary variable (stopped or not). Item 2. I have not found an incredible wealth of knowledge dealing with the application of analog outputs. I am in a position to write this section a few different ways. The analog output can be in mA or V, as we are using a signal conditioner to isolate the PLC from the motor drive controller. If the value of this were to remain constant I could see some options to directly output, but we may need at least a two-stage output (one speed forward one speed reverse) as we can control accelerate and decelerate through the drive controller. I imagine that the same function could just be duplicated for as many states and drives as are necessary. The target speed should be settable via HMI interface, with a slider bar going from 0 to 100, but the real output needs to be limited to 9V, not 10V (or 90% on current). I do not readily see how to code this. Item 3. I might already have an idea on how to do this, but I want to know the best practices. Upon recovering from an emergency stop I want to give the user the option to either return to “home” or to resume the operation. Either way, I need to make sure the machine either completes the cycle or is reset to its initial state. My previous mentor had some unorthodox methods, which I will not take the time to elaborate here. Again, looking for what is the best practice. Thank you in advance!
×