Somachine dynamic adressing

chud

Member
Join Date
Oct 2007
Location
KALAHARI
Posts
1,122
Hi guys
Im busy programming a template for a certain machine. The problem is these machines are not always 100% the same. Now I want to cater for these changes by giving the customer the option on the hmi to specify what parts of the machine is there and what isn't.Also what inputs and outputs are there. So firstly i would like to enable certain POU's only if those sections are in the machine. Secondly I would like to know if there is a simpler way of assigning bits to I/O the way I am doing it now (which btw is done by coding every possible option according to the selections, which i would hate to do if there is a simpler option in somachine)

Thanks in advance for any help
 
Interesting.

The part about getting parts of the program to execute based on user selections: Have various versions or parts of the program in different Program POU's. Based on the machine configuration, call on the relevent part.

I might use a CASE structure or an IF loop in ST to call on the version of the program to be executed based on the system configuration. That way the unused version are not executed for the life of the system.

CASE SysConfig OF

1: Config1_Main_POU();
2: Config2_Main_POU();
2: Config3_Main_POU();

END_CASE

If you prefer FBD or ladder, then use the EN/ENO pins to turn on/off program calls. In my opinion, this is less ideal because the program still executes rungs or networks that may not be active- even partially.

The part about deciding what the I/O variable mapping is, one way would be to map the variables in GVL and then tying it to I/O points. This is in contrast to generating the variables at the I/O configuration. ( screen cap attached)

To your point this would still require for all possible variables to be declared in the GVL upfront. The good thing is it will not throw an error because an actual I/O point is missing.


_________________________________________
http://www.drivesandsystems.com

TieToGVL.jpg
 
SoMachine does support indirect addressing for I/O modules.

In fact, the indirect addressing is a better approach for a 'configurable' system as the name of the I/O point can be singularly updated much quicker ( if required) than the direct addressing, especially if it is referenced in multiple locations.

Also, direct addressing is dependent on the order of the I/O modules in the program. If that changes for whatever reason, then the direct addressing goes haywire.
 
Thanks for the advice so far guys. Will give it a go and will let you know what i find works best
 

Similar Topics

Hello Everybody Anybody knows where I can get this version of SoMachine? The new machine expert version won't open my project saying there is a...
Replies
0
Views
32
I am trying to connect with a Schneider plc which has a firmware version only available in Somachine v4.2. In Machine expert After taking upload...
Replies
0
Views
110
Hello dear experts, I incurred in an anomaly while working with HMISCU devices by Schneider. I downloaded the program and everything seems to...
Replies
0
Views
440
Configuring a PWM block for servo control in SoMachine today and was attempting to run in simulator to test some loop controls, will PWM output...
Replies
0
Views
923
Hi all, I've been trying to develop modbus rtu program between uv balasts and plc ı'have 6 slave balast.I am reading fault run voltages etc...
Replies
0
Views
1,196
Back
Top Bottom