Показано с 1 по 10 из 64

Тема: CODESYS V3.5. Работа с модемами

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Супер Модератор Аватар для Евгений Кислов
    Регистрация
    27.01.2015
    Адрес
    Москва
    Сообщений
    12,234

    По умолчанию

    Цитата Сообщение от Эдуард_Н Посмотреть сообщение
    Предложите свой вариант, в ST. И для меня примером будет. Пробую в ST, но пока тяжело.
    В качестве примера:

    Код:
    PROGRAM PLC_PRG
    VAR
    	// задал 2 номера для теста
    	asPhoneNumbers:					ARRAY [1..c_iPhoneNumberCount] OF STRING(16) := ['79101234567', '','79101234568', '', ''];
    	sModemPhoneNumbers:				STRING;
    	i:						INT;
    	xCreateString:					BOOL;
    END_VAR
    VAR CONSTANT
    	c_iPhoneNumberCount:		                INT := 5;
    END_VAR
    
    
    
    IF xCreateString THEN
    	
    	// очищаем строку
    	MEM.MemFill(ADR(sModemPhoneNumbers), SIZEOF(sModemPhoneNumbers), 0);
    
    	FOR i := 1 TO c_iPhoneNumberCount DO
    	
    		// игнорируем незаданные номера
    		IF asPhoneNumbers[i] = '' THEN
    			CONTINUE;
    		ELSE
    			sModemPhoneNumbers := OSU.CONCAT4(sModemPhoneNumbers, '+', asPhoneNumbers[i], ';');
    		END_IF
    	END_FOR
    	
    	// после последнего номера не должно быть разделителя
    	sModemPhoneNumbers[LEN(sModemPhoneNumbers) - 1] := 0;
    	
    	xCreateString := FALSE;
    	
    END_IF

  2. #2
    Пользователь Аватар для Эдуард_Н
    Регистрация
    22.09.2014
    Адрес
    Курган
    Сообщений
    1,614

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    В качестве примера:

    Код:
    PROGRAM PLC_PRG
    VAR
    	// задал 2 номера для теста
    	asPhoneNumbers:					ARRAY [1..c_iPhoneNumberCount] OF STRING(16) := ['79101234567', '','79101234568', '', ''];
    	sModemPhoneNumbers:				STRING;
    	i:						INT;
    	xCreateString:					BOOL;
    END_VAR
    VAR CONSTANT
    	c_iPhoneNumberCount:		                INT := 5;
    END_VAR
    
    
    
    IF xCreateString THEN
    	
    	// очищаем строку
    	MEM.MemFill(ADR(sModemPhoneNumbers), SIZEOF(sModemPhoneNumbers), 0);
    
    	FOR i := 1 TO c_iPhoneNumberCount DO
    	
    		// игнорируем незаданные номера
    		IF asPhoneNumbers[i] = '' THEN
    			CONTINUE;
    		ELSE
    			sModemPhoneNumbers := OSU.CONCAT4(sModemPhoneNumbers, '+', asPhoneNumbers[i], ';');
    		END_IF
    	END_FOR
    	
    	// после последнего номера не должно быть разделителя
    	sModemPhoneNumbers[LEN(sModemPhoneNumbers) - 1] := 0;
    	
    	xCreateString := FALSE;
    	
    END_IF
    Так понимаю, что в эмуляции не работает?

Похожие темы

  1. Ответов: 3
    Последнее сообщение: 14.09.2021, 12:23
  2. CoDeSys работа с массивами.
    от Роман26 в разделе Эксплуатация
    Ответов: 13
    Последнее сообщение: 10.08.2019, 07:52
  3. Ответов: 1
    Последнее сообщение: 29.06.2017, 11:21
  4. ОРМ работа с модемами СПЕКТР 433
    от Golem-xxx в разделе OWEN Proces Manager
    Ответов: 1
    Последнее сообщение: 15.02.2011, 14:28
  5. связьс несколькими модемами пм01
    от wal1958 в разделе Сетевые технологии
    Ответов: 2
    Последнее сообщение: 17.03.2010, 09:57

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •