loading multiple Programs to a Delta DVP PLC

seshan98

Member
Join Date
Dec 2023
Location
Bangalore
Posts
6
Hey guys,

I've a requirement that a two different PLC program should work in same system depending upon user input.
Consider Program A is used for a particular purpose which uses IO's in a different way and there is Program B is used for particular purpose which uses the same IO's but different operation from the program A.
We have tested both the programs separately and working as expected, Now we want a way to switch between the programs without using the PLC software to load different program.
I've tried to combine both PLC program to one file due to some multiple usage of same instruction above the limit I'm facing an issue with compiling.
So I'm here exploring different way to switch between two programs without any use of PLC soft (WPL Soft)
CPU- DVP12SE-11T
Software - WPL Soft and DCI soft for programming and communication.

Just curious that is there any way to load multiple PLC program to the memory card and just load a file depending upon selection through Modbus communication from software (Custom).
 
I don't know Delta but have done a multiple program selection you have not said what the compile error(s) are, I suspect it could be multiple coils i.e. the same outputs in the two different programs.
If so then the way I have done it is pretty simple.
You create two or more programs i.e. a program block for each program & call them with enable bits (could use an integer var & load it with a value 1-2),
Use internal bits as the output coils & have a seperate program block where the internal bits are ored to drive the outputs.
One thing you need to do though is force the internal drive bits to off when program not selected.
Here is a simple one motor being contralled by two different programs
If the selection from HMI or selector switch is a 1 or 2 then it enables either of the motor functions, if 0 none are selected, to ensure the two functions (programs) do not leave the motor drive bits on when the blocks are not called these need to be reset when the blocks is not being called.
The global motor drive bits are ored to drive the motor output.
In this Mitsubishi program I can move 0 into a block of internal bits for each program but not sure your system can do that (in this I can disable multiple coil errors). There are many ways to do this you could call the program blocks unconditionally then use the prog selection variable in each call to enable or disable the output contral bits.
 
Dear Parky,

Thanks for the reply but the thing is that the use of instruction multiple times is limited in Delta PLC due to that I'm facing issue with Compiler.
For example, High speed comparison instruction is limited to use twice in a program, but the two different programs have to use it for different logics which increased the use of an instruction more than the allowed limit while combining two different program and resulted in compilation error.
Anyway, I've found a way to load the program through command prompt by which I've created a batch file that can load a program in just one click.
The Delta PLC provides a Card Utility Application which can help to backup and restore a program to a memory card or the PC memory. This is helpful to load two different programs as per application requirements.
 
I do not believe that, the Delta PLC is just really a sort of clone of the Mitsubishi FX series, you do not need to use High speed instructions twice for example if you have X0 as a single or double phase high speed counter the dedicatate counter C235 only needs to be used once, you just use the value in the counter.
Perhaps post your code as a PDF printout plus the compiler errors you are getting.
I really do not believe that you cannot run two programs by selecting which one runs as the only instructions that cannot be used twice will be the HSC & dedicated functions like timers/counters.
 
Please refer the below image of DVP series programming manual explaining the limitation of the usage of same instruction multiple times.Screenshot 2023-12-26 125613.png
 
That is correct, as I stated, you cannot use HSC commands more than once per channel, however, I assume that if you have a HSC counter on say channel 1 (X0), then you only use it once, it is impossible to have two counters connected to one channel.
Assume you are using it to position something on say a conveyor then in program 1 you still use the same channel/counter lets say you move a drive to 1020 counts, but on program 2 you want it to move to 1045 you do not need to program the HSC twice just compare the actual count from the HSC to the value in which ever program is running.
The only way to use the HSC in different modes for two programs is if the encoder or what ever you are using is the same one.
Attached is the Mitsubishi version it uses the high speed counter as a single phase there is no need to use X0 as C235 is directly linked to the input just call the counter on every scan (note: delta may use different counter numbers for the High sdpeed counting).
D0 is the program selection if 1 then program 1 is called, if 2 program 2 is called (Note: again not sure how many pointers "P" numbers are in Delta but there are a couple of thousand in Mitsubishi).
 
I understand that the HSC cannot be used multiple times, the above instruction is high speed comparator instruction which is used to compare a high-speed counter value and value set by the user. We have a requirement where we will delay an interrupt in 'X' number of Encoder pulses and set output (Y0) and delay 'Y' number of Encoder pulses and output (Y1) for this application we use High speed comparator set and reset instruction.
I accept that it is possible to combine and use it but what I'm trying is to avoid making a lot of change due to limitations in the PLC which may not be effective usage of time including testing.
 
I don't think you have much choice, All I would do is move the relevant data for each of the two program setpoints for the comparison & use two ored contacts onto a bit that is used to reset the counter, it is only a small change Not seeing your code or not being used to Delta I can only propose what I think is the way to do it. sorry I cannot be more helpful.
 
Sorry That I could not share my code. Anyway, thanks for your help if any requirement is there with two different operations, I would use the method you have suggested for future.
 
That's ok, I have done something similar on an inverter where we compare the position, it had multiple programs (recipes) where position varied depending on the packs, I would write the positions from the recipe to the HSC compare, it had multiple positions on each one, then let the compare just do it's job for example on recipe 1 there were 3 positions, on loading of the recipe, the first position was loaded into the compare variable, when it reached position it then stopped the drive waited for the next pack, incremented to the next position value & copied that into the compare block & so on for the positions. each position was different but as this was incremental we did not have to reset the counter, just carry on to the next position, if there was any slight error accumulation of errors for each pack but within tollerance i.e. position was 1 or 2 mm out the final move was adjusted accordingly to place the packs at the correct pickup point. this was a requirement due to it being driven from an inverter rather than servo.
 
Interesting to know, but how do u handle a series of production say there is a continues one after another. for example, say there are 10 packs in series and the series is like before the first pack reaches the position 2 the second pack might be just before position 1 so how do you handle the stop for the 2nd pack in position 1 since you are not maintaining any buffer values in PLC.
 
The infeed was fed by a chain conveyor with dogs so the packs were evenly spaced, if a pack reached the takeoff before the move of the pack infront of it the conveyor wouls stop until the metering conveyor had moved the pack into pickup position.
There were a number of possible setups depending on the pack size the first 2 or 3 or first 4 were always the same distance, when the last pack went in the position was different to place all packs in the correct position for the arms to drag them into the sealing head, seal & cut the film.
We also did some where the infeed conveyor would run without dogs to hold the packs but same operation when the front edge of a pack was detected at the end of the infeed conveyor the metering conveyor just ran it in so the next pack would be metered in position so all packs to be grabbed would have the same spacing. The packs for a particular run would always be the same size so it only meant that the final position for the arms to grab the packs would be different so for example on a 3 pack placement the first pack distance was say 200mm, the next pack would move to 300mm giving a 10mm gap between the first & second pack then the 3rd pack would have the same distance of 10mm but the metering conveyor moved further ready for pickup.
 
Last edited:

Similar Topics

How can I access the web page that allows me to see and upload the pcl or translation file into my Pl1000E? My Pl1000E doesn’t have an ethernet...
Replies
2
Views
129
Hi guys, I have had some issues with uploading a program from a Micro 850 PLC. This is the first time connecting so I don’t have a file on my...
Replies
8
Views
295
Hi everyone, I want to upload the program from my CPU317TF-2 DP to my PC via connecting to CP 343-1 Advanced since it has LAN ports and the CPU...
Replies
1
Views
170
Hi all, Im stuck trying to support a client with Motorola ACE.. I was able to upload all of the other sites to STS but one. Im working remotely...
Replies
0
Views
114
how do you load from [A] floppy disk to laptop 9030 program
Replies
3
Views
151
Back
Top Bottom