Esempio n. 1
0
        private void ExecuteS7ConnectionTest(int identity)
        {
            //get tested connection
            S7ConnectionModel connection = GetS7ConnectionModel(identity);

            //create connection testing class object
            S7ConnectionChecker checker = new S7ConnectionChecker();

            //check connection
            (bool success, string error) = checker.CheckConnection(connection.IPaddress, (short)connection.Rack, (short)connection.Slot);

            //in case of failure
            if (!success)
            {
                //write event to DB
                SystemEventCreator eventCreator = new SystemEventCreator(_realmProvider);
                eventCreator.SaveNewEvent(SystemEventTypeEnum.ConnectionTest, $"Connection test to S7 CPU with IP: {connection.IPaddress}, rack: {connection.Rack}, slot: {connection.Slot}; failed.");

                MessageBox.Show($"Connection test failed. {error}.", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
            else //success
            {
                SuccessConnectionDataReaded(checker);

                //write event to DB
                SystemEventCreator eventCreator = new SystemEventCreator(_realmProvider);
                eventCreator.SaveNewEvent(SystemEventTypeEnum.ConnectionTest, $"Connection test to S7 CPU with IP: {connection.IPaddress}, rack: {connection.Rack}, slot: {connection.Slot}; successfull.");
            }
        }
        private void CheckingIfConnectionIsOK()
        {
            //find incorrect connections
            foreach (var item in _activeS7Connections)
            {
                bool connectionOK;

                try
                {
                    S7ConnectionChecker checker = new S7ConnectionChecker();
                    (bool ok, string error) = checker.CheckConnection($"{item.FirstOctet}.{item.SecondOctet}.{item.ThirdOctet}.{item.FourthOctet}",
                                                                      (short)item.Rack, (short)item.Slot);

                    if (!ok)
                    {
                        SystemEventCreator creator = new SystemEventCreator(_realmProvider);
                        creator.SaveNewEvent(SystemEventTypeEnum.S7PLCconnectionFailure, $"Failed to connect to PLC with IP address: " +
                                             $"{item.FirstOctet}.{item.SecondOctet}.{item.ThirdOctet}.{item.FourthOctet}, Rack: {item.Rack}, Slot: {item.Slot}; during runtime.");
                    }

                    connectionOK = ok;
                }
                catch (Exception ex)
                {
                    var logger = NLog.LogManager.GetCurrentClassLogger();
                    logger.Error($"Error while trying to check communication status. Error: {ex.Message}.");
                    connectionOK = false;
                }

                _plcConnectionOK.Add(connectionOK);
            }
        }
Esempio n. 3
0
        private void Save()
        {
            //create instance of event saving object
            SystemEventCreator creator = new SystemEventCreator(_realmProvider);

            //save new event
            creator.SaveNewEvent(SystemEventTypeEnum.S7AlarmOccured,
                                 $"New alarm: PLC connection ID: {_alarm.PLCconnectionID}; alarm tag name: {_alarm.AlarmTagName}; alarm text: {_currentAlarmText}.");;
        }
Esempio n. 4
0
        private void SendSMSes()
        {
            //TODO - add sending to the device
            //for now only saving an event in DB

            SystemEventCreator creator = new SystemEventCreator(_realmProvider);

            for (int i = 0; i < _messagesToSend.Count(); i++)
            {
                if (_sendingDetails[i].ToBeSend)
                {
                    foreach (var item in _sendingDetails[i].PhoneNumbers)
                    {
                        creator.SaveNewEvent(SystemEventTypeEnum.SMSsending, $"Sending new SMS. Mssage Text: {_messagesToSend[i].AlarmText}; Phone number: +{item}.");
                    }
                }
            }
        }