
leon78
MrPLC Member-
Content count
40 -
Joined
-
Last visited
Community Reputation
5 NeutralAbout leon78
-
Rank
Sparky
- Birthday 06/28/78
Contact Methods
- Website URL http://
- ICQ 174331215
Profile Information
- Location Russia
Recent Profile Visitors
-
mrms.1987 liked a post in a topic: Unity Pro XL Get Time of Day
-
Unity Pro XL Get Time of Day
leon78 replied to Gville's topic in Modicon / Telemecanique / Schneider Electric
*BCD* -
luiscantu88 liked a post in a topic: Unity Pro XL Get Time of Day
-
Gville liked a post in a topic: Unity Pro XL Get Time of Day
-
Unity Pro XL Get Time of Day
leon78 replied to Gville's topic in Modicon / Telemecanique / Schneider Electric
MinutesHours := BCD_TO_INT(%SW51); Hours := INT_TO_REAL(MinutesHours/100); Minutes := INT_TO_REAL(MinutesHours MOD 100); -
Gville liked a post in a topic: Unity Pro XL Get Time of Day
-
leon78 started following Unity Pro XL Get Time of Day
-
Unity Pro XL Get Time of Day
leon78 replied to Gville's topic in Modicon / Telemecanique / Schneider Electric
See help about %SW51 %SW51 = 16#HHMM -
leon78 started following Modicon Quantum Hotstandy
-
Modicon Quantum Hotstandy
leon78 replied to Fahim shah's topic in Modicon / Telemecanique / Schneider Electric
The Standby PLC have IP address + 1. For example, 191.168.1.1 for the primary and 192.168.1.2 for the standby. Maybe you write data to the standby, and the primary rewrite it every scan. I think both the PLC are standby if you remove CHS card and you can write data. -
Concept V2.2 SP2
leon78 replied to Korvettes's topic in Modicon / Telemecanique / Schneider Electric
FOR MODERATORS: IT IS NOT A PIRATED SOFTWARE! IT IS ONLY A FREE UPDATE SR2 FOR CONCEPT 2.2! https://cloud.mail.ru/public/7KRg/R8Z2Tjj7W -
I am sorry and I apologize... Another moderator informed me that that was link to updates only and that those are free... Your status is restored and warning is removed.
-
Concept V2.2 SP2
leon78 replied to Korvettes's topic in Modicon / Telemecanique / Schneider Electric
(deleted - was moderator mistake) -
Concept V2.2 SP2
leon78 replied to Korvettes's topic in Modicon / Telemecanique / Schneider Electric
You need *.asc file for import to other version of Concept. -
leon78 started following Concept V2.2 SP2
-
Exuse me, but I have C code only with Russian comments: { UINT i; UINT uTemp; UINT uPriorMax; *pLastPollErr = FALSE; //ОПРЕДЕЛЕНИЕ ПРИОРИТЕТА if (*pAbort || AliGetProgState()->coldInit || AliGetProgState()->warmInit) //Требуется прервать опрос { //Остановка опроса при необходимости *pStart = FALSE; *pDev_Num_poll = 0; for (i = 1; i <= *pDev_Num; i++) { //Выставить приоритет (*pVar)[i-1].Prior = (*pCnst)[i-1].Prior_Beg; //Сбросить состояние (*pVar)[i-1].Stat = 0; } } else { for (i = 1; i <= *pDev_Num; i++) { //Сбросить флаги завершения опроса (*pVar)[i-1].Stat &= ~(MBP_POLL_SCAN_OK | MBP_POLL_SCAN_ERR); if ((( (*pVar)[i-1].Stat & MBP_POLL_RUN ) == 0) && (*pVar)[i-1].Prior != 0) //Устройство требуется опрашивать и оно не опрашивается { //Увеличить приоритет опроса if ((*pVar)[i-1].Stat & MBP_POLL_LAST_OK) uTemp = *pSys_Time_Delta_100 * (*pCnst)[i-1].PriorAdd_Ok; else uTemp = *pSys_Time_Delta_100 * (*pCnst)[i-1].PriorAdd_Err; if ((*pVar)[i-1].Prior < 0xFFFF - uTemp) (*pVar)[i-1].Prior = (*pVar)[i-1].Prior + uTemp; else (*pVar)[i-1].Prior = 0xFFFF; } } } //РАБОТА С УСТРОЙСТВАМИ if (!*pXXMIT_Activ && !*pAbort) //Блок XXMIT не запущен { if (*pStart && *pDev_Num_poll) //Ранее отпрашивалось устройсво { (*pVar)[*pDev_Num_poll-1].Stat &= ~MBP_POLL_RUN; if (!*pXXMIT_Code_Err) //Опрос завершился без ошибок { (*pVar)[*pDev_Num_poll-1].Stat &= ~(MBP_POLL_SCAN_ERR | MBP_POLL_LAST_ERR); (*pVar)[*pDev_Num_poll-1].Stat |= MBP_POLL_SCAN_OK | MBP_POLL_LAST_OK; (*pOK_Count)[*pDev_Num_poll-1] ++; } else //Опрос завершился с ошибкой { //Код ошибки (*pErr)[*pDev_Num_poll - 1] = *pXXMIT_Code_Err; (*pVar)[*pDev_Num_poll-1].Stat &= ~(MBP_POLL_SCAN_OK | MBP_POLL_LAST_OK); (*pVar)[*pDev_Num_poll-1].Stat |= MBP_POLL_SCAN_ERR | MBP_POLL_LAST_ERR; (*pErr_Count)[*pDev_Num_poll-1] ++; *pLastPollErr = TRUE; *pLastPollErrCode = *pXXMIT_Code_Err; *pLastPollDev = *pDev_Num_poll; } //Выставить приоритет (*pVar)[*pDev_Num_poll-1].Prior = (*pCnst)[*pDev_Num_poll - 1].Prior_Beg; } //Поиск следующего опрашиваемого устройства uPriorMax = 0; uTemp = 0; *pDev_Num_poll = 0; *pStart = FALSE; for (i = 1; i <= *pDev_Num; i++) { if ((*pVar)[i-1].Prior > 0 && (*pVar)[i-1].Prior > uPriorMax) //Требуется опрос устройства и у него более высокий приоритет { uPriorMax = (*pVar)[i-1].Prior; uTemp = i; } } if (uTemp) //Найдено устройство, требующее опроса { //Запуск нового опроса (*pVar)[uTemp-1].Prior = 0; *pXXMIT_Command =(*pXXMIT_PAR)[uTemp - 1].Command; *pXXMIT_MsgLen =(*pXXMIT_PAR)[uTemp - 1].MsgLen; *pXXMIT_Port =(*pXXMIT_PAR)[uTemp - 1].Port; *pXXMIT_Baudrate =(*pXXMIT_PAR)[uTemp - 1].Baudrate; *pXXMIT_Databits =(*pXXMIT_PAR)[uTemp - 1].Databits; *pXXMIT_Stopbits =(*pXXMIT_PAR)[uTemp - 1].Stopbits; *pXXMIT_Parity =(*pXXMIT_PAR)[uTemp - 1].Parity; *pXXMIT_RespTour =(*pXXMIT_PAR)[uTemp - 1].RespTour; *pXXMIT_RetryLmt =(*pXXMIT_PAR)[uTemp - 1].RetryLmt; *pXXMIT_StartDly =(*pXXMIT_PAR)[uTemp - 1].StartDly; *pXXMIT_EndDly =(*pXXMIT_PAR)[uTemp - 1].EndDly; for (i = 1; i <= 5; i++) (*pXXMIT_MsgOut)[i - 1] = (*pXXMIT_PAR)[uTemp - 1].MsgOut[i-1]; (*pVar)[uTemp - 1].Stat |= MBP_POLL_RUN; *pDev_Num_poll = uTemp; *pStart = TRUE; } } return; }
-
leon78 started following XXMIT block
-
Hi! I think you must use only one instance of the XXMIT block. Please, read help: 'Several XXMITs can not be activate at the same time. If more than one XXMIT is activated, the first scanned block will operate and prevent operation of all other XXMITs until it has completed. The next block in the scan that is called will generate an immediate fault code 150' Many time ago I had wrote a block for Concept. The block is manager for XXMIT. http://forums.mrplc.com/index.php?/files/file/271-management-of-the-block-xxmit/
-
sarahclark liked a post in a topic: Schneider Unity Pro indirect bit addressing
-
leon78 started following Schneider Unity Pro indirect bit addressing
-
Schneider Unity Pro indirect bit addressing
leon78 replied to sarahclark's topic in Modicon / Telemecanique / Schneider Electric
This is not possible. You must use mask for your case: FOR (WordIndex :=0 TO 63) DO FOR (BitIndex :=0 TO 15) DO wMask := SHL(16#0001, BitIndex ); IF A[WordIndex] AND wMask NE B[WordIndex] AND wMask THEN B[WordIndex] :=(B[WordIndex] AND NOT wMask) OR (A[WordIndex] AND wMask) ; Res := (WordIndex*16) + BitIndex; (other stuff) ; END_IF; END_FOR;END_FOR; -
Hi Leon, this is Arde. I posted a link to my Concept 2.2 project files on the original post. Can you please convert to an ASCII file and send them to me?
I really appreciate your help!
Thanks, Arde
-
Concept programs 2.2
leon78 replied to akirka's topic in Modicon / Telemecanique / Schneider Electric
Hi! I can try to help you. I have Concept 2.2 and I can export your project to ASCII file. -
leon78 started following Concept programs 2.2
-
140CPU67160 Modbus IO Scanning
leon78 replied to Atticuss's topic in Modicon / Telemecanique / Schneider Electric
Hi Atticuss, The Quantum Hot Stanby PLC has 3 modes: Primary, Standby, Offline. You can see it on a LCD display. If your PLC has connect with IO drop(s), and did start first, it is Primary. If your transfer project from Primary PLC to other PLC, other PLC is Standby. If your PLC has no connect with IO drop(s) after start or see other Primary PLC after start and has different project in memory, it is Offline -
140CPU67160 Modbus IO Scanning
leon78 replied to Atticuss's topic in Modicon / Telemecanique / Schneider Electric
The PLC scan IO in the Primary mode only. What is mode of your PLC?