--- a/etherlab/plc_ds402node.c Thu Feb 23 15:48:19 2012 +0100
+++ b/etherlab/plc_ds402node.c Thu Feb 23 23:34:40 2012 +0100
@@ -131,5 +131,10 @@
- *(__DS402Node_%(location)s.TargetPosition) = (IEC_DINT)(__DS402Node_%(location)s.axis->PositionSetPoint * __DS402Node_%(location)s.axis->RatioNumerator / __DS402Node_%(location)s.axis->RatioDenominator);
+ if (__DS402Node_%(location)s.axis->CSP && *(__DS402Node_%(location)s.ModesOfOperationDisplay) == 0x08) { + *(__DS402Node_%(location)s.TargetPosition) = (IEC_DINT)(__DS402Node_%(location)s.axis->PositionSetPoint * __DS402Node_%(location)s.axis->RatioNumerator / __DS402Node_%(location)s.axis->RatioDenominator); + *(__DS402Node_%(location)s.TargetPosition) = *(__DS402Node_%(location)s.ActualPosition); --- a/etherlab/plc_etherlab.c Thu Feb 23 15:48:19 2012 +0100
+++ b/etherlab/plc_etherlab.c Thu Feb 23 23:34:40 2012 +0100
@@ -16,6 +16,8 @@
+extern unsigned long long common_ticktime__; // declaration of interface variables
%(located_variables_declaration)s
@@ -70,6 +72,8 @@
+ ecrt_master_set_send_interval(master, common_ticktime__); %(slaves_initialization)s
sprintf(&rt_dev_file[0],"%%s%%u",EC_RTDM_DEV_FILE_NAME,0);
@@ -111,16 +115,16 @@
void __retrieve_%(location)s(void)
+ ecrt_rtdm_domain_queque(rt_fd); + ecrt_rtdm_master_send(rt_fd); + rt_task_sleep(rt_timer_ns2tsc(wait_period_ns)); ecrt_rtdm_master_recieve(rt_fd);
ecrt_rtdm_domain_process(rt_fd);
- rt_task_sleep(rt_timer_ns2tsc(wait_period_ns));
- ecrt_rtdm_domain_queque(rt_fd);
- ecrt_rtdm_master_send(rt_fd);