<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">mais</journal-id><journal-title-group><journal-title xml:lang="ru">Моделирование и анализ информационных систем</journal-title><trans-title-group xml:lang="en"><trans-title>Modeling and Analysis of Information Systems</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">1818-1015</issn><issn pub-type="epub">2313-5417</issn><publisher><publisher-name>Yaroslavl State University</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.18255/1818-1015-2013-2-104-120</article-id><article-id custom-type="elpub" pub-id-type="custom">mais-209</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Оригинальные статьи</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>Articles</subject></subj-group></article-categories><title-group><article-title>Моделирование, спецификация и построение программ логических контроллеров</article-title><trans-title-group xml:lang="en"><trans-title>Modeling, Specification and Construction of PLC-programs</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Кузьмин</surname><given-names>Егор Владимирович</given-names></name><name name-style="western" xml:lang="en"><surname>Kuzmin</surname><given-names>E. V.</given-names></name></name-alternatives><bio xml:lang="ru"><p>д-р физ.-мат. наук, профессор,</p><p>150000 Россия, г. Ярославль, ул. Советская, 14</p></bio><bio xml:lang="en"><p>д-р физ.-мат. наук, профессор,</p><p>Sovetskaya str., 14, Yaroslavl, 150000, Russia</p></bio><email xlink:type="simple">kuzmin@uniyar.ac.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Соколов</surname><given-names>Валерий Анатольевич</given-names></name><name name-style="western" xml:lang="en"><surname>Sokolov</surname><given-names>V. A.</given-names></name></name-alternatives><bio xml:lang="ru"><p>д-р физ.-мат. наук, профессор,</p><p>150000 Россия, г. Ярославль, ул. Советская, 14</p></bio><bio xml:lang="en"><p>д-р физ.-мат. наук, профессор,</p><p>Sovetskaya str., 14, Yaroslavl, 150000, Russia</p></bio><email xlink:type="simple">sokolov@uniyar.ac.ru</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Ярославский государственный университет им. П.Г. Демидова</institution><country>Россия</country></aff><aff xml:lang="en"><institution>P.G. Demidov Yaroslavl State University</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2013</year></pub-date><pub-date pub-type="epub"><day>20</day><month>04</month><year>2013</year></pub-date><volume>20</volume><issue>2</issue><fpage>104</fpage><lpage>120</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Кузьмин Е.В., Соколов В.А., 2013</copyright-statement><copyright-year>2013</copyright-year><copyright-holder xml:lang="ru">Кузьмин Е.В., Соколов В.А.</copyright-holder><copyright-holder xml:lang="en">Kuzmin E.V., Sokolov V.A.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://www.mais-journal.ru/jour/article/view/209">https://www.mais-journal.ru/jour/article/view/209</self-uri><abstract><p>Предлагается новый подход к построению надежных «дискретных» ПЛК-программ с таймерами — программирование исходя из задач спецификации и верификации. Для спецификации программного поведения используется язык темпоральной логики LTL. Программирование осуществляется на языке ST по LTL-спецификации. Проводится дискретное моделирование таймера. Новый подход к программированию ПЛК демонстрируется на примере.</p><p>Предлагаемый подход к программированию ПЛК обеспечивает возможность анализа корректности ПЛК-программ с помощью метода проверки модели. При программировании требуется соблюдение следующих двух условий:</p><p>1) значение каждой переменной должно изменяться не более одного раза за одно полное выполнение программы при прохождении рабочего цикла ПЛК;</p><p>2) значение каждой переменной должно изменяться только в одном месте про- граммы ПЛК.</p><p>В рамках предлагаемого подхода изменение значения каждой программной переменной описывается с помощью пары LTL-формул. Первая LTL-формула описывает ситуации, при которых происходит возрастание значения соответствующей переменной, вторая LTL-формула задает условия, приводящие к уменьшению значения переменной. Рассматриваемые для спецификации поведения переменных LTL-формулы являются конструктивными в том смысле, что по ним производится построение ПЛК-программы, которая соответствует темпоральным свойствам, выраженным этими формулами. Таким образом, программирование ПЛК сводится к построению LTL-спецификации поведения каждой программной переменной. </p></abstract><trans-abstract xml:lang="en"><p>A new approach to construction of reliable discrete PLC-programs with timers — programming based on specification and verification — is proposed. Timers are modelled in a discrete way. For the specification of a program behavior we use the linear-time temporal logic LTL. Programming is carried out in the ST-language according to a LTLspecification. A new approach to programming of PLC is shown by an example. The proposed programming approach provides an ability of a correctness analysis of PLC-programs using the model checking method. The programming requires fulfillment of the following two conditions: 1) a value of each variable should be changed not more than once per one full PLC-program implementation (per one full working cycle of PLC); 2) a value of each variable should only be changed in one place of a PLC-program. Under the proposed approach the change of the value of each program variable is described by a pair of LTL-formulas. The first LTL-formula describes situations that increase the value of the corresponding variable, the second LTL-formula specifies conditions leading to a decrease of the variable value. The LTL-formulas (used for specification of the corresponding variable behavior) are constructive in the sense that they construct the PLC-program, which satisfies temporal properties expressed by these formulas. Thus, the programming of PLC is reduced to the construction of LTL-specification of the behavior of each program variable.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>программируемые логические контроллеры</kwd><kwd>технология программирования</kwd><kwd>моделирование и спецификация программ</kwd></kwd-group><kwd-group xml:lang="en"><kwd>programmable pogic controllers</kwd><kwd>software engineering</kwd><kwd>modeling and specification of PLC-programs</kwd></kwd-group><funding-group><funding-statement xml:lang="ru">РФФИ, Минобрнауки РФ, ФЦП "Научные и научно-педагогические кадры инновационной России" на 2009–2013 годы</funding-statement></funding-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Грис Д. Наука программирования: Пер. с англ. М.: Мир, 1984. 416 с. (Gries D. The Science of Programming. Springer-Verlag, 1981).</mixed-citation><mixed-citation xml:lang="en">Грис Д. Наука программирования: Пер. с англ. М.: Мир, 1984. 416 с. (Gries D. The Science of Programming. Springer-Verlag, 1981).</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Кларк Э. М., Грамберг О., Пелед Д. Верификация моделей программ: Model Checking: Пер. с англ. М.: МЦНМО, 2002. 416 с. (Clark E. M., Grumberg O., Peled D. A. Model Checking. The MIT Press, 2001).</mixed-citation><mixed-citation xml:lang="en">Кларк Э. М., Грамберг О., Пелед Д. Верификация моделей программ: Model Checking: Пер. с англ. М.: МЦНМО, 2002. 416 с. (Clark E. M., Grumberg O., Peled D. A. Model Checking. The MIT Press, 2001).</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Кузьмин Е. В., Соколов В. А. О построении и верификации программ логических контроллеров // Моделирование и анализ информационных систем. 2012. Т. 19, №4. С. 25–36 (Kuzmin E. V., Sokolov V. A. On Construction and Verification of PLCPrograms // Modeling and analysis of information systems. 2012. V. 19, №4. P. 25–36 [in Russian]).</mixed-citation><mixed-citation xml:lang="en">Кузьмин Е. В., Соколов В. А. О построении и верификации программ логических контроллеров // Моделирование и анализ информационных систем. 2012. Т. 19, №4. С. 25–36 (Kuzmin E. V., Sokolov V. A. On Construction and Verification of PLCPrograms // Modeling and analysis of information systems. 2012. V. 19, №4. P. 25–36 [in Russian]).</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Кузьмин Е. В., Соколов В. А. О верификации LD-программ логических контроллеров // Моделирование и анализ информационных систем. 2012. Т. 19, №2. С. 138–144 (Kuzmin E. V., Sokolov V. A. On Verification of PLC-Programs Written in the LD-Language // Modeling and analysis of information systems. 2012. V. 19, №2. P. 138–144 [in Russian]).</mixed-citation><mixed-citation xml:lang="en">Кузьмин Е. В., Соколов В. А. О верификации LD-программ логических контроллеров // Моделирование и анализ информационных систем. 2012. Т. 19, №2. С. 138–144 (Kuzmin E. V., Sokolov V. A. On Verification of PLC-Programs Written in the LD-Language // Modeling and analysis of information systems. 2012. V. 19, №2. P. 138–144 [in Russian]).</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Парр Э. Программируемые контроллеры: руководство для инженера. М.: БИНОМ. Лаборатория знаний, 2007. 516 с. (Parr E. A. Programmable Controllers. An engineer’s guide. Newnes, 2003. 442 p.).</mixed-citation><mixed-citation xml:lang="en">Парр Э. Программируемые контроллеры: руководство для инженера. М.: БИНОМ. Лаборатория знаний, 2007. 516 с. (Parr E. A. Programmable Controllers. An engineer’s guide. Newnes, 2003. 442 p.).</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Петров И. В. Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования. М.: СОЛОН-Пресс, 2004. 256 с. (Petrov I. V. Programmiruemye kontrollery. Standartnye jazyki i priemy prikladnogo proektirovanija. M.: SOLON-Press, 2004. 256 p. [in Russian]).</mixed-citation><mixed-citation xml:lang="en">Петров И. В. Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования. М.: СОЛОН-Пресс, 2004. 256 с. (Petrov I. V. Programmiruemye kontrollery. Standartnye jazyki i priemy prikladnogo proektirovanija. M.: SOLON-Press, 2004. 256 p. [in Russian]).</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">CoDeSys. Controller Development System. http://www.3s-software.com/</mixed-citation><mixed-citation xml:lang="en">CoDeSys. Controller Development System. http://www.3s-software.com/</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">SMV. The Cadence SMV Model Checker. http://www.kenmcmil.com/smv.html</mixed-citation><mixed-citation xml:lang="en">SMV. The Cadence SMV Model Checker. http://www.kenmcmil.com/smv.html</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
