Пример #1
0
        private void ConfigureSync01(IList <SlaveInfo> slaveInfoSet)
        {
            // SYNC0 / SYNC1
            foreach (SlaveInfo slaveInfo in slaveInfoSet)
            {
                ushort slaveIndex;
                DistributedClocksSettings distributedClocksSettings;

                slaveIndex = (ushort)(Convert.ToUInt16(slaveInfoSet.ToList().IndexOf(slaveInfo)) + 1);
                distributedClocksSettings = slaveInfo.SlaveExtensionSet.OfType <DistributedClocksSettings>().ToList().FirstOrDefault();

                if (distributedClocksSettings != null)
                {
                    DistributedClocksParameters parameters;
                    byte[] assignActivate;

                    if (!slaveInfo.SlaveEsi.Dc.TimeLoopControlOnly)
                    {
                        assignActivate = null;
                        parameters     = distributedClocksSettings.CalculateDcParameters(ref assignActivate, _settings.CycleFrequency);
                        EcUtilities.CheckErrorCode(this.Context, EcHL.ConfigureSync01(this.Context, slaveIndex, ref assignActivate, assignActivate.Count(), parameters.CycleTime0, parameters.CycleTime1, parameters.ShiftTime0));
                    }
                }
            }
        }
Пример #2
0
        private void ConfigureSync01(IList <SlaveInfo> slaves)
        {
            // SYNC0 / SYNC1
            foreach (var slave in slaves)
            {
                var slaveIndex = (ushort)(Convert.ToUInt16(slaves.ToList().IndexOf(slave)) + 1);
                var distributedClocksSettings = slave
                                                .Extensions
                                                .OfType <DistributedClocksExtension>()
                                                .ToList()
                                                .FirstOrDefault();

                if (distributedClocksSettings != null)
                {
                    if (!slave.Esi.Dc.TimeLoopControlOnly)
                    {
                        byte[] assignActivate = null;
                        var    parameters     = distributedClocksSettings.CalculateDcParameters(ref assignActivate, _settings.CycleFrequency);
                        EcUtilities.CheckErrorCode(this.Context, EcHL.ConfigureSync01(this.Context, slaveIndex, ref assignActivate, assignActivate.Count(), parameters.CycleTime0, parameters.CycleTime1, parameters.ShiftTime0));
                    }
                }
            }
        }