Automation Direct DL05 memory locations

f16bmathis

Member
Join Date
Sep 2013
Location
Wisconsin
Posts
131
I have a Direct Logic DL05 (DO-05DR) PLC I'm using with a samkoon touchscreen. I've got communication going between the two using Modbus, but...

I've only been able to control all the outputs Y0-Y5 by addressing the Samkoon bit buttons as 0x2048 for Y0, 0x2049 for Y1, and so on. This works as long as you don't write a DL05 program using the output. Once you do, the touchscreen will not command the output anymore. Reading up on it, it looks like all I am doing is OVER riding the output. The next scan would change the output back.

So I'm looking for a reference that would show me that Modbus 0x???? would be for input X0 through X7. And then there's timers and such also. Both the Modbus manual and the DL05 manual only show how to add the hex number converted to binary to the address, but don't show where I can use a 0x????, or 1x???? as an address. My choices when Modbus is selected as the comm protocol is ox, 1x, 3x, 4x, 3x_D, and 4x_D, with some numbers afterwards.
29358599@N05

Anybody see this before?
 
I'm not sure the PLC will allow direct control of outputs from a remote device, and I don't think it is good practice anyway. I suggest having your touchscreen write to an internal coil address, and using that to turn on the output.
 
Similar to the outputs, the system reads the real inputs and updates the input ('X') table each scan. As Tom mentions, you can read these to display the state of the real input but it is not advised to write to them. As he mentions, the 'C' bit locations and the 'V' numeric registers are the proper target for writing.
 
I'm not sure the PLC will allow direct control of outputs from a remote device, and I don't think it is good practice anyway. I suggest having your touchscreen write to an internal coil address, and using that to turn on the output.

That's what I'm saying. The PLC will allow me to directly control the outputs, but I want to access the memory to do it right.

Any idea what the addresses are? 0x2048 will directly turn on or off the output at Y0.
 
Similar to the outputs, the system reads the real inputs and updates the input ('X') table each scan. As Tom mentions, you can read these to display the state of the real input but it is not advised to write to them. As he mentions, the 'C' bit locations and the 'V' numeric registers are the proper target for writing.

And once you let go of the touch screen and the PLC scans again, it will return the output to its programmed state, unless there is no program loaded. Not a good way to run a machine!

How do I access the memory locations? It needs to read as 0x???? or 1x????, or 3x????, or ... as stated in the header
 
Don't get confused by the initial numbers (0, 1, 3, 4) when forming Modbus addresses. While in the earliest Modbus capable PLCs they did represent actual memory address sections they are now a SYMBOL of the type of information. They could just as easily be % & * #. The actual first number shown does not get transmitted. The type of read or write command carries that information. It is easier to just refer to them as their initial memory area meaning. '0' = 'Coils', '1' = 'Bit Inputs', '3' = 'Word Inputs', '4' = 'Holding Registers'.

As the Koyo spreadsheet shows a lot of bit memory is included under the 'Coil' section. Just determine which area the memory item is located in and address it properly. As noted the general 'V' memory registers can be read/written as either 'Input Registers' or 'Holding Registers'.

(As a note you will only be concerned with the left side of the spreadsheet. The right side is for use when the RX or WX commands are used within a DL program since external Modbus references must be made in terms of what the equivalent location would be called with the DL CPU. The MWX/MRX commands, if available, are much easier to use.)
 
And once you let go of the touch screen and the PLC scans again, it will return the output to its programmed state
That is exactly what an object on a touch screen configured as a momentary pushbutton is supposed to do. When you touch it, the HMI writes a value of 1 to the associated memory location. When you release it, the HMI writes a value of zero to the same memory location.
 
...
So I'm looking for a reference that would show me that Modbus 0x???? would be for input X0 through X7. And then there's timers and such also...
You can't write to the X inputs for the same reason. What you need is the internal bits - the "C" bits. You do almost everything on the HMI with them. Still 0x. For the timers, you will use "V". That's 4x.
0x for bits, and 4x for words. That's it. There is uses for 1x and 3x, but I don't think I've ever used them. Certainly for what you want, you won't need them.

If you were wiring a PLC with buttons, you would write logic with X bits for inputs. With the HMI, you use C bits.

Let's start with turning Y0 on and off.
[c0]-|---[/c1]-----------------y0
[y0]-|

Use a bit button for c0. Address 0x3072. Label "Start".
Use a bit button for c1. Address 0x3073. Label "Stop".
Use a bit lamp for y0. Address is 0x2048. Label it "Motor" or whatever you want.
 
That is exactly what an object on a touch screen configured as a momentary pushbutton is supposed to do. When you touch it, the HMI writes a value of 1 to the associated memory location. When you release it, the HMI writes a value of zero to the same memory location.

Maybe I worded this wrong, but I don't have them set as momentary, but they are set to drive the actual output, and I read that if you do this , once you let go of the HMI PB, and the PLC makes its next scan, it will erase the output, though for me they are staying on, but I dont have a program loaded other than an "end" on the first/last/only line. Of course today, nothing is doing anything at all, so I'm even more confused! One step forward, two...
 
Maybe I worded this wrong, but I don't have them set as momentary, but they are set to drive the actual output, and I read that if you do this , once you let go of the HMI PB, and the PLC makes its next scan, it will erase the output, though for me they are staying on, but I dont have a program loaded other than an "end" on the first/last/only line. Of course today, nothing is doing anything at all, so I'm even more confused! One step forward, two...[/QUOTE

You have it analyzed correctly. Lacking a PLC program to control the outputs the only thing controlling them is you Modbus communication. If there were a program addressing the output then it would take precedence.
 

Similar Topics

Hello everyone, I have a customer that needs some help and I dont really understand the question so im posting it here, I think he is over...
Replies
16
Views
3,700
I am about to use a PLC for the first time to do a small lab task, and we have ordered an AD DL05 with 8 DC inputs and 6 relay outputs. The...
Replies
4
Views
3,659
Anyone know if you can use a DL05 and communicate to wonderware, with or without the ethernet addon. Thanks for your time.
Replies
5
Views
4,524
I am working on the automation direct PLC DL05. I have problem on the timer instruction, Once the timer instruction becomes true & when reach to...
Replies
4
Views
3,849
Back
Top Bottom