powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / небольшой вопрос С++ циклический счетчик
6 сообщений из 31, страница 2 из 2
небольшой вопрос С++ циклический счетчик
    #38002772
Oleg_KN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
небольшой вопрос С++ циклический счетчик
    #38002778
m_Sla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_KN, если программу на контроллере изменить не получается, тогда читай документацию по "C++ Script". Документация должна быть со скадой. Кто его знает, какие там ограничения.
...
Рейтинг: 0 / 0
небольшой вопрос С++ циклический счетчик
    #38002814
Oleg_KN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот как то так я вижу решение этой проблемы, только незнаю лексики С++ если кто понял)) исправте
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
(МЕТКА) Int In1=ReadValue("DI2.охлаждение");
  if In1 = 0 then
  WriteValue("Virtual channel 16",In1);
  иначе
   In1++;
  if In1<5
  {WriteValue("Virtual channel 16",In1);
  возврат(МЕТКА)}
  иначе
  {In1=1;
  Возврат(МЕТКА)}
...
Рейтинг: 0 / 0
небольшой вопрос С++ циклический счетчик
    #38002892
Oleg_KN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуем задать вопрос иначе:
Две переменные А,В (Переменная "А" берется из вне и имеет значения либо 1 либо 0)
Сделать так что бы при А = 1, В последовательно менялось от 1 до 4 затем снова сравнивалось с А, и так постоянно. Если А = 0 значить B = 0.
...
Рейтинг: 0 / 0
небольшой вопрос С++ циклический счетчик
    #38002932
Abstraction
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_KNПопробуем задать вопрос иначе:
Две переменные А,В (Переменная "А" берется из вне и имеет значения либо 1 либо 0)
Сделать так что бы при А = 1, В последовательно менялось от 1 до 4 затем снова сравнивалось с А, и так постоянно. Если А = 0 значить B = 0."Последовательное изменение от 1 до 4" реализуется выражением B = (B % 4) + 1 (или, как вариант, if(B==4) B=1; else B=B+1;). Обратите внимание, что при этом переменная B не должна использоваться в иных вычислениях, так как она хранит "последнее" число циклического перебора. То есть, эта переменная должна жить между вызовами функции; в C++ этого можно добиться, объявив переменную в теле функции с ключевым словом static; если Ваш скрипт этого не позволяет, необходимо использовать глобальную переменную.
Другими словами (в C-синтаксисе; то, что у Вас, заставляет сомневаться, что знакосочетание C++ имеет к этому скрипту хоть какое-нибудь отношение):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  int In1 = ReadValue("DI2.охлаждение");
  static int countValue = 1;
  if (In1 == 0) { 
    WriteValue("Virtual channel 16", 0);
  } else {
    WriteValue("Virtual channel 16", countValue);
    if(countValue == 4) countValue = 1; else countValue = countValue + 1;
  }
...
Рейтинг: 0 / 0
небольшой вопрос С++ циклический счетчик
    #38002977
Oleg_KN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Abstraction громаднейшее спасибо все заработало! код получился таким)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
int In1 = ReadValue("DI2.охлаждение");
  {if (In1 == 0) {
    WriteValue("Virtual channel 16", 0);
  } else {
  int In2;
    WriteValue("Virtual channel 16", In2);
    if(In2 == 4) In2 = 1; else In2 = In2 + 1;
  }
}



Не знаю как тут "спасибо" поставить :)
ура)
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / небольшой вопрос С++ циклический счетчик
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]