sending word or integer data to an integer variable is not just possible... it is requirement.
btw PGNO_TYPE value is not something you would transmit. this value is used to specify data exchange format so it is not something that would be changed a lot. you set it once and that's it.
same goes for all three variables in autoexternal interface (marked yellow "Var"). those are
the "permanent" settings.
things used in handshake are the I/O signals (marked green "I/O"). those are changing during process.
the question is, can your data exchange interface control I/O or not?
anything that maps to I/O would require suitable driver and I/O mapping on KRC side.
thank you for the information, but my situation is somewhat complex, I have an HMI which transmits their variable in integer by modBus, and I have a PLC as an intermediary which transmits the info from my HMI to KRC by profinet, so the question of how I could send the info from my HMI to start my program cell.src
what is so complex about it? it cannot be simpler... you just have:
PLC<--> KRC (ProfiNet)
i do not see a problem at all...
have HMI send whatever signal you want to PLC, have PLC handshake with KRC. that is exactly what AutoExternal is meant for. signals between PLC and KRC are I/O.
all data is organized in some units of memory, bits, bytes, whatever. part of a job of a programmer is to group and split data according to needs.
sending data from HMI to PLC has nothing to do with sending data from PLC to KRC. those are two very separate things. until you realize this, you will not be able to move forward with your project or problem description. you can and should make and test connection between PLC and KRC completely independent of anything HMI.
you need to break things down in sufficiently small steps then resolve each step, one by one until all steps are completed.
for example you could do something like this:
1. read manuals
2. determine needed number of signals
3. create WoV project that connects to PLC including mapping of I/O
4. decide on type and accordingly configure AutoExternal interface
5. create couple of dummy programs that do not move robot, just use delay and print message
6. adapt CELL.SRC to call those dummy programs
7. deploy project to robot
8. configure PLC to use robots AutoExternal interface
9. create PLC program to handshake with KRC using that AutoExternal interface
10. test everything and confirm that PLC can chose and run any dummy program i want
11. create HMI application
12. make HMI communicate with PLC
13. create few HMI controls to show status of PLC and KRC and trigger few things in PLC
14. adapt PLC program so that signal from HMI triggers some action such as choosing KRC program and starting it
now you may also say some of the steps are not very detailed and you don't know how to solve them. that may include step 9.
ok, just break it down even more.... and solve it one piece at a time.
for robot to be under the spell of PLC, PLC needs to know some things such as if the robot is really in EXT mode or not. only in EXT mode PLC can have control. and that means something like:
1. check if KRC is in EXT and CELL.SRC is selected
2. if there is a KRC stop message clear messages.
3. set drives on, drives off and move enable to get KRC confirm that drives are on
4. if everything is ok so far, issue start and make sure CELL.SRC is running
5. now you should have everything green on smartPad....
6. let the PLC send correct value for PGNO according to program selection on your HMI
7. confirm that KRC sees that same value (you do not want to run wrong program)
8. if confirmed that KRC sees correct PGNO, let PLC tell to KRC that PGNO_VALID is true.
all of this is covered in KUKA documentation and i have shared an example of simple PLC program.
and what if CELL.SRC is not selected or if different robot program is selected?
again, read the manuals. default is that user would manually select CELL.SRC, run it in T1 mode until robot is home, then change mode to EXT. at this point PLC program takes over.
you could of course automate that too (by using CWRITE commands).
so with few lines of code your SPS would detect moment user changes mode to EXT and check if program is selected or not. if it is wrong program deselect it. if no program is selected, select CELL.SRC
Hello everyone, i have a question if it is possible to send a data type in word or integer to the PGNO_TYPE variable to start a program on the Cell.src.
Why do you want to send PGNO_TYPE to the robot from an external source? PGNO_TYPE is a configuration variable, not an input. (along with PGNO_FBIT, PGNO_LENGTH, and PGNO_PARITY).
PGNO, and PGNO_VALID, are the signals you need to send to the robot, in response to the robot sending PGNO_REQ
i've been wondering about that too. maybe he wants to make configuration possible from his HMI. but this is so unlikely i dismissed it. there is nothing in a way to have HMI write value to PLC and PLC writes that same value to outputs mapped to robot and have robot update that or any other variable.