Komunikacja z PLC po DDE

0

Witam,

Próbuje wysyłać i odbierać dane ze sterownika PLC z wykorzystaniem DDE i serwera FaconSvr. Ogólnie z serwerem łącze się prawidłowo, jednak nie mogę nic do niego wysłać, ani też odebrać. Prosty kod przedstawiam poniżej:

		private void button1_Click(object sender, EventArgs e)
		{
			_Application app = new Microsoft.Office.Interop.Excel.Application();

			String _data = "3";
			String _item = "R200";

			int x = app.DDEInitiate("FaconSvr", "Channel0.Station0.Group0");

			// Odbieranie z PLC
			//Object obj = app.DDERequest(x, _item);

			// Wysyłanie do PLC
			app.DDEPoke(x, _item, _data);
			app.DDETerminate(x);
		}

Może ktoś z Was mógłby mi pomóc? Dodam tylko, że kompilacja przebiega bez błędów, a uruchomiony program nie zgłasza żadnych wyjątków.

1
HIOB napisał(a):

Dodam tylko, że kompilacja przebiega bez błędów, a uruchomiony program nie zgłasza żadnych wyjątków.

To skąd wiesz, że nie działa?
Sprawdzałeś co

int x = app.DDEInitiate("FaconSvr", "Channel0.Station0.Group0");

zwraca? Może nie udało się nawiązać połączenia z serwerem.

0
int x = app.DDEInitiate("FaconSvr", "Channel0.Station0.Group0");

Zwraca w wyniku "0". Zmiana nazwy serwera lub kanału/stacji/grupy powoduje wygenerowanie wyjątku. Jeżeli na serwerze zmienię jedną z wymienionych nazw również zgłaszany jest wyjątek. Założyłem zatem, że połączenie jest ok.

Tak wygląda aplikacja serwera:
screenshot-20220804135933.png

0

Po przeanalizowaniu sytuacji rezygnuje z obsługi PLC poprzez DDE na rzecz bezpośredniej komunikacji.
Dziękuję wszystkim za pomoc.
Pozdrawiam.

1 użytkowników online, w tym zalogowanych: 0, gości: 1