Commit dcb32a3b authored by Robert Karlsson's avatar Robert Karlsson

Profibus/Profinet fixes, added rt_elog_dump utility

parent 95ad1973
...@@ -52,3 +52,7 @@ ...@@ -52,3 +52,7 @@
120615 cs profinet Profinet configurator, sorting of moduletypes and iodata length settings 120615 cs profinet Profinet configurator, sorting of moduletypes and iodata length settings
120813 cs profibus Profibus configurator in xtt, bugfix in errorhandling for empty gsd-file (refs #112) 120813 cs profibus Profibus configurator in xtt, bugfix in errorhandling for empty gsd-file (refs #112)
120813 cs profibus Profibus device Janitza umg961 added 120813 cs profibus Profibus device Janitza umg961 added
120829 rk profinet IO offset caclulation bugfix for modules with both in- and output.
121130 rk profibus Handling of large prm data areas.
121130 rk profibus Moved event handling to separate thread. Not dependant on io-read cycle time.
...@@ -276,20 +276,20 @@ static pwr_tStatus IoAgentInit ( ...@@ -276,20 +276,20 @@ static pwr_tStatus IoAgentInit (
for (ll = 0; ll < local->device_data[ii]->module_data[kk]->submodule_data.size(); ll++) { for (ll = 0; ll < local->device_data[ii]->module_data[kk]->submodule_data.size(); ll++) {
PnSubmoduleData *submodule; PnSubmoduleData *submodule;
submodule = local->device_data[ii]->module_data[kk]->submodule_data[ll]; submodule = local->device_data[ii]->module_data[kk]->submodule_data[ll];
if (submodule->type & type) { if ((type == PROFINET_IO_CR_TYPE_INPUT) &&
if ((submodule->type == PROFINET_IO_SUBMODULE_TYPE_INPUT) || ((submodule->type == PROFINET_IO_SUBMODULE_TYPE_INPUT) ||
(submodule->type == PROFINET_IO_SUBMODULE_TYPE_INPUT_AND_OUTPUT)) { (submodule->type == PROFINET_IO_SUBMODULE_TYPE_INPUT_AND_OUTPUT))) {
submodule->offset_clean_io_in = offset_inputs; submodule->offset_clean_io_in = offset_inputs;
offset_inputs += submodule->io_in_data_length; offset_inputs += submodule->io_in_data_length;
} }
if ((submodule->type == PROFINET_IO_SUBMODULE_TYPE_OUTPUT) || else if ((type == PROFINET_IO_CR_TYPE_OUTPUT) &&
(submodule->type == PROFINET_IO_SUBMODULE_TYPE_INPUT_AND_OUTPUT)) { ((submodule->type == PROFINET_IO_SUBMODULE_TYPE_OUTPUT) ||
(submodule->type == PROFINET_IO_SUBMODULE_TYPE_INPUT_AND_OUTPUT))) {
submodule->offset_clean_io_out = offset_outputs; submodule->offset_clean_io_out = offset_outputs;
offset_outputs += submodule->io_out_data_length; offset_outputs += submodule->io_out_data_length;
} }
} }
} }
}
local->device_data[ii]->iocr_data[jj]->clean_io_data = (unsigned char *) calloc(1, offset_inputs + offset_outputs); local->device_data[ii]->iocr_data[jj]->clean_io_data = (unsigned char *) calloc(1, offset_inputs + offset_outputs);
local->device_data[ii]->iocr_data[jj]->clean_io_data_length = offset_inputs + offset_outputs; local->device_data[ii]->iocr_data[jj]->clean_io_data_length = offset_inputs + offset_outputs;
} }
......
...@@ -221,3 +221,5 @@ ...@@ -221,3 +221,5 @@
120823 cs plc Plc, serveral processes, handling of error log and process status 120823 cs plc Plc, serveral processes, handling of error log and process status
120824 cs plc Plc, several plc processes, signal handling with rt_ini at start and restart 120824 cs plc Plc, several plc processes, signal handling with rt_ini at start and restart
120926 cs neth Size check in subscription client message to avoid rt_neth crash at bad network 120926 cs neth Size check in subscription client message to avoid rt_neth crash at bad network
121203 rk elog Added executable rt_elog_dump that will dump historical event log to text-file.
ifndef link_rule_mk
link_rule_mk := 1
link = $(ld) $(linkflags) $(domap) -o $(export_exe) \
$(export_obj) $(objects) $(rt_msg_objs) \
$(pwr_obj)/rt_io_user.o \
$(pwre_conf_libdir) $(pwre_conf_libpwrrt) $(pwre_conf_lib)
endif
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment