Yaskawa MotionWorks IEC Programming

aiki202

Member
Join Date
Aug 2007
Location
Pennsylvania
Posts
178
Can anyone confirm if the following capabilities exist for Yaskawa MotionWorks IEC / MPiec controllers:

- Indirect addressing of variables
- Aliasing variables

I have read a ton of Yaskawa's documentation and watched many training videos and do not see any mention of these. I just want to make sure I am not missing something as I am starting to write code for my first MPiec controller.

Thanks
 
Hi

I have only used motion works in two jobs both where connected to a micro logix 1100 over Ethernet. I never rember been able to do either of the items you are looking for.As I had the Plc I would also do most of the coding in the Plc anyway.

I have some training manuals I will check them later

Donnchadh
 
Please explain exactly what you want to do. You can define an address for a variable, then only use that variable name throughout your program. You can also directly use the memory address.
 
Thanks for the replies.

For indirect addressing I am looking for something like this:

MyArray[Variable] where Variable could be an INT or DINT etc.

For Aliasing I have always used this with other platforms to reference the real world I/O points in the CAD drawings. For example if this is a discrete input: RK1_S2_DI_03 ... rack, slot, type, point reference. But now in the variable database the actual physical address (%IX...) doesn't mean anything and neither does RK1_S2_DI_03 in program logic on a contact...therefore aliasing the RK1_S2_DI_03 variable something like "PB2374" with a description of "Device Run Forward" allows a logical reference inside the PLC that makes sense. It bridges the gap between real world I/O and logic naming conventions.
 
No to what you refer to as indirect addressing. Yes to the aliasing. Just change the default name for the I/O to whatever you want. Internally, it is the same as referring to the address. Just watch out if you are setup up to autoconfigure. You will end up with multiple tags with the same address, and you will have to delete the duplicates.
 
Just change the default name for the I/O to whatever you want
I am not sure what you mean by this. Here is a screen shot of my global variable database for a local I/O module. Based on this what would I change to alias the Local_S1_DI_00 variable? Or are you saying to just change the variable name to something else and reference the address directly?

GlobalVariables.jpg
 
Yaskawa MotionWorks IEC is re-branded KW Software Multiprog (the same tha is used by Phoenix Contact controllers) and as such should support all the features of IEC 61131 standard.
 
Sorry for the confusion. Yes I agree that Local_S1_DI_00 is an alias for %IX61504.0. I gave it this name in order to make the CAD drawings efficient for locating the physical input module when troubleshooting. Now I would like to alias "Local_S1_DI_00" as another variable such as "PB1234" for use in code.

(1) If I put %IX61504.0 in the CAD drawings for an input it has no meaning to someone trying to find the physical input module as the software simply picked the next memory address available. It wouldn't be much better than an assigned wire number from the CAD drawings.

(2) If I leave the Local_S1_DI_00 variable name as the alias then when I use this variable in code it has no meaning other than you know it is a discrete input. I know there is a description field as well for each variable that I can use but that would be where I would normally show "Device Run Forward" for example. Essentially the "PB1234" variable would match a P&ID drawing.

Hopefully this makes more sense.

As far as the default name each time I add a real world device the only variables that MotionWorks adds are the Group place holders...no variable names are added...I need to add these in some manual fashion to the database...unless I am missing something with the AutoConfig you mentioned earlier.
 
Yaskawa MotionWorks IEC is re-branded KW Software Multiprog

Wow. It looks identical. Interesting.

Back to aliasing...
So I guess I am limited to using two variable names pointing to the same address OR simply energizing a coil with the variable name I want from a contact from each input variable?
 
I don't think you can have 2 variables pointing to the same address. If you can, I don't think you would want to do that. You can always just have a program running(in a fast cycle) that copies/reads global variables and I/O variables.
 
Thanks for all the replies so far.

Another question now related to Modbus TCP comms...from what I am interpreting from the mapping table, is the processor really limited to a total of 128 read coils and 128 write coils over Modbus TCP? I realize you can bit pack data into INTs (1024 max) but this seems really limited especially if you get into multiple HMIs and devices over Modbus TCP.
 
Yes to both.

In fact, I'm currently writing a program in MotionWorks IEC where I've stored some servo positions in an array of REALs, and I indirectly reference them using the position number I want to move to.

For example, the Position parameter of an absolute move instruction is tied to the tag: Servo_Positions[PositionNum], where Servo_Positions is the array of REALs, and PositionNum is the position number I call.

So, if I want to move to position 5, I simply set PositionNum to '5', and the appropriate value is loaded.
 

Similar Topics

I'm self teaching myself Yaskawa's IEC MotionWorks to make some changes to an existing machine we have. The original programming was done by an...
Replies
2
Views
2,191
I am very new to PLC programming and would like to if there is a way to modify an existing MotionWorks program that uses block diagrams, by...
Replies
2
Views
1,854
Hi all, I converted a project from MW+ Express to MW+ Pro, for the benefit of more percise control over the performance of different parts in...
Replies
5
Views
1,871
I have a spin welding machine utilizing a Yaskawa Sigma II motor, with an MP940 controller. I am attempting to change the weld characteristics...
Replies
33
Views
9,647
What is the best way to extract the hour and minute from the register that comes from Yaskawa VFD. In studio 5000 I have a register saved as INT...
Replies
3
Views
127
Back
Top Bottom