plc seven segment display project

David, ZIP your RSLogix program (or print it out to a PDF file) and post it here. Someone (maybe me) will help you convert it to an Automation Direct DirectSoft DL-06 PLC program.
 
All I really need would be to have just the first few rungs translated including the timer and maybe one rung with an output. I think if I had that, it will be enough information for me to figure out how to build the rest of the program.

Thanks,
David G.
 
Here is the converted program in a ZIPped DirectSoft32 Version 4 project, with the required 8 files:

7-SEG DISPLAY.ESD
7-SEG DISPLAY.ESX
7-SEG DISPLAY.INF
7-SEG DISPLAY.LCD
7-SEG DISPLAY.LCX
7-SEG DISPLAY.LDA
7-SEG DISPLAY.PRJ
7-SEG DISPLAY.wsp

Save the 8 files to your DirectSoft Projects folder. The "7-SEG DISPLAY.PRJ" is the start-up file. Note that DirectSoft uses octal-numbered addresses, so the next address after "V407" is "V410" (no V408 or V409).

The PDF file is a print-out of the ladder program. Note that this is simply a conversion of your program, and any errors that might have existed have been duplicated. 👨🏻‍🏫
 
Last edited:
Ok, I loaded up your program and I think it will be very helpful to me. I am beginning to understand the new instructions in this program better. I just have one question though, can I change the timer preset to 1 second base instead of .1 second base? When I want the out puts to turn on, I would like them to stay on for 1 full second and not just flicker on for .1 seconds. How can I do that?

Thanks David
 
The largest time-base-multiplier available for the DL-06 is 0.1 seconds, but Yes, you can set the timer to whatever time you desire, from 0 up to 999.9 seconds or 16 minutes and 40 seconds. Simply go into Edit Mode, click on the Rung a TMR box, then click on the "K150" preset value, and change to Kxxx, where xxx is your desired Seconds/0.1 (Seconds divided by 0.1). I had Timer 1 set for 150 x 0.1, or 15 seconds same as your original program. One reason to use a small time-base-multiplier (0.1 second in this case) is you can see the timer running even if your time increment is large. There are three faster-incrementing 0.01 second timers available in DirectSoft, the TMRA, TMRAF, and TMRF.

Most likely, you need to set memory registers V401 to V411 equal to 10, 20, 30, 40, 50, 60, 70, 80, and 90, so that you can use the available 0.1 time base TMR.

With your current program, if you could set your timer to "1" second (in RSLogix), then your Comparison instructions will never see the Timer Accumulator be equal to any numbers except "0" and "1". Only a few of your comparisons will ever be TRUE. I think you need your timer to count from 0 to at least 9 (now 10 to 90 in the Directsoft program) in order for your program to work correctly. I am not exactly certain what you are trying to do, but usually in this type of multiplexing operation, a One-Shot bit is involved somewhere!

As I said, I only converted the program. I did not try to correct any possible errors.
 
Last edited:
Another possibility to be aware of: If your numbers now stored in V401 to V411 (should be 10 to 90) never change but are constants, then you really do not have to use variable addresses. In your DirectSoft program, simply make the comparisons read "TA1 = K10" for the first, "TA1 = K20" for the second, and so on up to ""TA1 = K90" (K in DirectSoft means "Konstant" or Constant followed by the number.

A way to possibly improve your new DirectSoft program: Instead of controlling your Outputs with a timer, use a self-resetting TMR timer (set to display whatever time needed, maybe K10 x 0.1 seconds or even 2 seconds (K20 X 0.1 seconds), with the timer triggering a CNT Counter each time it hits it set time value, then the new Counter counts from decimal 1 to 9, then resets and repeats. Now your Comparison instructions should look at the Counter value, not the timer value.
 
Last edited:
In rs logix I had the timer go from 0 to 30 seconds. On the rungs below I had equals instructions that say when a preset bit file equals an accumulated value from the timer, it would turn on the output light on that rung it was on. That is at least what I am thinking it does. the rslogix timer incremented by 1 second each time all the way up to 30 seconds. For each second the timer was on, the light was also on for a full second. With the direct logic timer, it increments up by .1 seconds so when the equal instruction is true, the light will only light up for .1 seconds.

On the light display I want the light segments to be lit for the duration of a full second.

I don't know much about the program but whatever I had in rslogix appeared to be what I ultimately want to accomplish.
 
On the light display I want the light segments to be lit for the duration of a full second.
Okay, then look at my previous Post #24. Either change your numbers to 10 to 90, or use the CNT Counter along with the existing timer (but set the timer to "K10" to display outputs for 1 second).

Never mind the video. I understand you, but you should realize that not all PLCs are created equal. There are differences, and one of the differences here is that there is no 1-second time base for the DL-06. You will need to work around that fact, and it is not difficult to do that. I have told you two ways to do that, and now I realize that if you set your V401 to V411 for 10 to 90, that will not display the outputs for 1 second. You will need farther corrections.

Something that would help is to explain the goal of your program. What is it supposed to do, what do you hope to accomplish, what actions will it do?

In RSLogix, I had the timer go from 0 to 30 seconds.
Maybe so, but in the version you posted, Timer T4:1 was set to 15 seconds (why my Directsoft T1 timer was set to "K150" x 0.1 seconds, the same 15 seconds). Anyway, you are only using the first 9 seconds and during the 10 to 15 seconds, nothing will happen. That is the part that was confusing me, why 15 seconds (or 30), when your numbers only go 1 to 9?

Remember, I did not correct it, only duplicated it as closely as possible in the new software. You must make the corrections because I did not know the goal.
 
Last edited:
Hang on a minute, and I will now correct the problems and post a new version. Here it is.
 
Last edited:
I see what you did with the new program and I was actually thinking about something just like that to make this work. That right there just solved the problem.

Thank you for putting so much of your time into this for me. You have really helped me out.
 
Here is one more version that uses a 10 x 0.1 second timer to control a new Counter from 1 to 10. It makes the Output rungs much simpler, only requiring the original "=" comparison, and also eliminates the timer reset rung. With this version, you can set your display time for each output up to 999.9 seconds, and it will not affect the output rung logic at all. Of course the Counter CT0 can also be set for different ranges (other than 0 to 10) if needed.
 
Last edited:

Similar Topics

Replies
5
Views
2,987
I have got an Rockwell PLC 1769-L36ERMS . I have assigned a IP address to it . But every-time I Reboot the PLC it looses Communication to my PC...
Replies
1
Views
29
Hi, I am trying to set up a plc. I've never done any programming with ladder logic previously. I'm trying to set up a a program to turn a device...
Replies
6
Views
118
Hello, I have a question about an encoder that has absolute measurement. Specifically, it's the Lika SMA5, which I would like to connect...
Replies
2
Views
54
Hello, I have a question about an encoder that has absolute measurement. Specifically, it's the Lika SMA5, which I would like to connect...
Replies
0
Views
31
Back
Top Bottom