Güvenlik Öznitelik Şeması ile Programlama Bileşeninin Tasarımı ve Araştırılması

Li Qiang, Zhang Jianfeng

(Bilgisayar Bilimleri Fakültesi, Hangzhou Dianzi Üniversitesi, Hangzhou 310018, Zhejiang)

: Güvenlik özelliklerine sahip programlanabilir mantık denetleyicisi (Programlanabilir Mantık Denetleyicisi, PLC) programlama bileşenlerinin araştırılması ve uygulanması. Bileşen, yalnızca IEC611313 standart programlama dili spesifikasyonunu karşılamakla kalmayan, aynı zamanda bileşenin standart PLC programlama yazılımında yeniden kullanımını gerçekleştiren IEC611313 standart fonksiyon bloğu modelini benimser. Bileşenin arabirimi, PLC programlamasında gerektiği gibi değiştirilebilir ve kapsüllenmiş arabirimi TC6 XML şeması öznitelik tanımını karşılar ve eklenen güvenlik öznitelikleri, bileşenin güvenli bir şekilde yeniden kullanılmasını sağlar. Son olarak, bileşenler Microsoft Visual Studio (VS) 2012'de .NET bileşen teknolojisi ve C # programlama dili kullanılarak uygulandı ve bileşenler üzerinde ilgili doğrulamalar yapıldı.

: IEC61131-3; TC6 XML şeması; bileşen güvenliği

: TP311 belge tanımlama kodu: ADII: 10.19358 / j.issn.1674-7720.2017.03.022

Alıntı biçimi Li Qiang, Zhang Jianfeng.Güvenlik öznitelik grafiği ile programlama bileşeninin tasarımı ve araştırması J. Mikrobilgisayar ve Uygulama, 2017,36 (3): 75-78,81.

0 Önsöz

IEC61131-3 standardı, endüstriyel kontrol programlama dilinde sadece yol gösterici ve standartlaştırıcı bir role sahip olmakla kalmaz, aynı zamanda PLC teknolojisinin geliştirilmesinde önemli bir yol gösterici rol oynadı [1]. PLC programlama, karşılık gelen programlama dili bileşen geliştirmeyi kullandığından ve mevcut genel yazılım geliştirme, nesne yönelimli ve bileşen teknolojisi olduğundan [2], IEC61131-3 standardını karşılayan programlama yazılımı için daha üstün bileşenler tasarlamak gerekir.

PLC diyagramı programlama bileşenlerinin araştırmasında, bazıları bileşenlerin yeniden kullanılabilirliğini iyileştirmek için modülleri kapsüllemek için bileşen teknolojisini kullanır [3-5] ve bazıları bileşenlerin standardizasyonunu iyileştirmeye yardımcı olan IEC61131-3 tasarım standardı bileşenlerini temel alır [6-8 ].

Bileşen yeniden kullanılabilirliği ve normatif araştırmayı birleştiren bu makale, IEC611313 standart grafik programlama fonksiyon bloğu modelini, TC6 XML şemasını ve bileşen güvenliğini inceler ve bileşenin olabilmesi için bir güvenlik bileşenini tasarlamak ve doğrulamak için .NET bileşen teknolojisini kullanır. Kullanıma uygun.

1IEC61131-3 standardı

1.1IEC61131-3 standart yazılım modeli

IEC61131-3, endüstriyel otomasyon kontrol sistemlerinin yazılım tasarımı için standartlaştırılmış bir programlama dili sağlayan dünyanın ilk uluslararası standardıdır [1] Standart iki bölüme [9-10] ayrılmıştır: genel öğeler ve programlama dilleri. Ortak öğe bölümü, değişkenlerin tanımını ve veri türlerini standartlaştırır, Şekil 1'de gösterildiği gibi sistem yazılım modelini verir ve yapılandırma, kaynaklar, görevler ve Program Organizasyon Birimi (POU) kavramlarını tanıtır. Programlama dili talimat listesi, yapılandırılmış metin, merdiven diyagramı, fonksiyon blok diyagramı ve sıralı fonksiyon diyagramını belirtir.

IEC61131-3 standardının yazılım modelinden, bir cihazın bir konfigürasyona karşılık geldiği, her konfigürasyonun birkaç kaynak içerdiği ve her kaynakta birkaç görevin tanımlanabildiği anlaşılabilir.Görevler konfigüre edildikten sonra, bir POU grubu periyodik olarak kontrol edilir veya yürütülmek üzere olay güdümlüdür. Şekil 3 Fonksiyon bloğu nitelik tanımı 1.2 IEC61131-3 standart fonksiyon bloğu modeli

POU, 3 tip temel birimden oluşur: program, fonksiyon bloğu (Fonksiyon Bloğu, FB), fonksiyon, bunlar arasında fonksiyon bloğu IEC61131-3 standardının temel unsurudur, bu nedenle bu makalede tasarlanan bileşenler esas olarak fonksiyon bloğuna dayanmaktadır. Fonksiyon bloğunun nesne yönelimli özelliğinin temel birimi giriş değişkenleri, çıktı değişkenleri ve dahili algoritmalardan oluşur ve Şekil 2'de gösterildiği gibi bir tip adıyla tanımlanır. Fonksiyon bloğunun giriş ve çıkış değişkenleri genel veri alanından gelir ve programlama sırasında kullanıcı tarafından erişilebilir ve ayarlanabilir. Fonksiyon bloğu, belirli algoritmaları kapsayabilir ve belirli işlemleri işletim verilerinden ayırabilir.

IEC61131-3 fonksiyon bloklarının giriş ve çıkışı, küresel veri alanları ve değişken erişim yolları gibi yöntemler aracılığıyla bilgi alışverişinde bulunur Bu kadar basit bir yapı, karmaşık kontrol döngülerini açıklamak için uygundur ve mühendisliğin fonksiyonel gereksinimlerini karşılayabilir. Fonksiyon bloklarının kapsüllenmesi, sistemin genel algoritma yapılandırmasını, programın yeniden kullanılabilirliğini ve taşınabilirliğini artıran tek bir algoritma yapılandırmasının araştırma ve geliştirme sürecinden ayırır [11].

2TC6 XML şeması

IEC61131-3 standardı, PLC programlama yazılımının birleştirilmesini desteklese de, farklı programlama yazılımları, veri etkileşimine elverişli olmayan farklı veri açıklama formatları kullanır. Bu sorunu çözmek için, PLCopen Teknik Komitesinin TC6 organizasyonu, farklı programlama yazılımları tarafından ekran bilgilerini platformlar arasında [12] iletmek için kullanılan eksiksiz bir açık standart arayüz tanımlamıştır, böylece standart uyumlu veri tanımlama dosyaları veri paylaşımını sağlamak için birbirine dönüştürülebilir. . IEC61131-3 standardının temel bileşen POU'sunun nitelikleri TC6 XML şemasında aşağıdaki gibi tanımlanmıştır:

< xsd: simpleType name = "pouType" >

< xsd: ek açıklama >

< xsd: belgeler > farklı POU'lar

< / xsd: belgeler >

< / xsd: ek açıklama >

< xsd: kısıtlama tabanı = "xsd: NMTOKEN" >

< xsd: numaralandırma değeri = "işlev" / >

< xsd: numaralandırma değeri = "functionBlock" / >

< xsd: numaralandırma değeri = "program" / >

< / xsd: kısıtlama >

< / xsd: simpleType >

Standart programlama yazılımı, kullanıcı tarafından ayarlanan pouType niteliğine göre karşılık gelen PROG, FB veya FUN'u seçer. Bu makaledeki bileşen tasarımını destekleyen FB nitelikleri beş programlama diline dayanmaktadır ve Şekil 3'te gösterildiği gibi tanımlanmıştır. FB'nin karşılık gelen nitelikleri, öğe adlandırma kuralını, XML açıklama belgesinin yapısını ve öğeleri kullanma ilkesini tanımlayan TC6 XML şemasında ayrıntılı olarak açıklanmıştır. IEC61131-3 standart grafik programlama diline göre bu belgede tanımlanan güvenlik bileşenlerinin öznitelikleri, TC6 XML şemasına göre tanımlanmıştır.

3 bileşenli güvenlik

PLC programlama görsel bileşenlere dayalıdır, bu nedenle bileşen güvenliği tüm projenin anahtarıdır. Bileşen güvenliği, program verilerine yetkisiz erişimden veya değiştirilmesinden kaynaklanan kötü niyetli izinsiz girişleri önleme becerisiyle ilgili bir yazılım özniteliğidir. Yasadışı kod izinsiz girişinin neden olduğu bileşen güvenlik sorununu hedefleyen bu makale, bileşen için güvenlik tasarımının iki yönünü gerçekleştirmiştir: (1) Bileşen tasarım düzeyinden, bileşen oluşturulduğunda bileşen kitaplığını ekleyin < DLLMD5 > Özellik etiketi, bileşen kitaplığı standart yazılıma yüklendiğinde, güvenliğini değerlendirmek için tasarlanan güvenlik bileşeni kitaplığı ile bellek boyutuna göre tutarlı olup olmadığının tespit edilebilmesini sağlamak için bileşen kodu bellek yönetimini doğrulamak için; (2) Bileşende TC6 XML tanımlama seviyesinde, PLC projesi standart XML olarak kaydedildiğinde, bileşenin güvenliğini belirlemek için, spesifikasyonları karşılayıp karşılamadığını görmek için projenin bileşen tanımlama kısmı TC6 XML şeması arayüz bileşen açıklamasına göre doğrulanır.

4 bileşenli tasarım ve uygulama

IEC61131-3 standart grafik programlama dili, TC6 XML şeması ve bileşen güvenliğinde tanımlanan işlev bloğu modeli aracılığıyla, bu makale ilk olarak işlev bloğu bileşenleri için bileşen özniteliklerini tasarlar ve VS2012 geliştirme yazılımında .NET bileşen teknolojisi ve C # programlamayı kullanır Dil uygulama bileşeni tasarımı.

Bu makale beş bileşen tasarlar: Temel giriş ve çıkış modüllerini, temel giriş modüllerini, temel çıkış modüllerini, işlev modüllerini ve etiket modüllerini temsil etmek için BaseInOut, BaseIn, BaseOut, FUN ve Label.Aşağıda, bileşen özellik tasarımını göstermek için BaseInOut örnek olarak alınır.

4.1 Bileşen özellikleri ve eleman düğüm tasarımı

Şekil 4 < pou > FB, POU'ya dahil olduğu için eleman düğüm tanımı, TC6 XML şemasından tanımlanmalıdır < pous > Eleman düğümü analiz etmeye başlar. < pous > Bir kaç tane var < pou > Eleman düğümü, < pou > Tanımı Şekil 4'te gösterilmektedir. < pou > Esas olarak dönüş tipi, tip listesi bildirim bilgilerinden oluşur < arayüz > 5 programlama dilinde karşılık gelen bildirimleri içeren eleman düğümleri ve çalışma listeleri < vücut > Şekil 5'te gösterildiği gibi eleman düğüm bileşimi, < vücut > Çalışma listesi XML dosyası sırasına göre yürütülür. < vücut > FBD'de tanımlanan nesne öğeleri kümesi tüm grafik yapılara uygulanabilir, bu nedenle bu makaledeki bileşenlerin öznitelik tasarımı temelde FBD öğelerinin özniteliklerine atıfta bulunur.

FBD öğe tanımı gereksinimleri < blok > Eleman düğümleri, fonksiyonlar veya fonksiyonel bloklar üzerindeki işlemlerin grafik temsillerini temsil eder, < blok > Dahil edilen localId, width, height ve typeName nitelikleri, bileşenin yerel seri numarasını, genişliğini, yüksekliğini ve tip adını temsil etmek için kullanılabilir; < blok > Dahil < durum > Eleman düğümü, < inputVariable > Eleman düğümü, < inOutVariable > Eleman düğümü, < outPutVariable > PLC grafik programlama yazılımında sırasıyla eleman düğümünün konumu, giriş değişkeni, giriş / çıkış değişkeni ve çıkış değişkeni. < durum > Programlama yazılımında bileşenin belirli konum bilgilerini kalibre etmek için bileşen koordinatlarının x ve y değerlerini kullanın; < inputVariable > Dahil < değişken > Öğe düğümünde bulunan formalParameter niteliği, değişken adını temsil eder ve şunu içerir: < connectionPointIn > Eleman düğümü, < connectionPointOut > Eleman düğümü, bileşen bağlantı giriş terminalinin ve bağlantı çıkış terminalinin konum bilgisini temsil eder.

Bileşen güvenlik öznitelikleri ışığında, bu makale bileşen kitaplıkları tasarlar < DLLMD5 > Eleman düğümü, tasarlanan bileşen kitaplığı dosyasının ileti özet algoritması 5 (İleti Özeti Algoritması 5, MD5) hesaplaması yoluyla, MD5 değeri "dijital parmak izi" olarak hesaplanır, bileşen kitaplığı programlama yazılımına yüklendiğinde, bileşen kitaplığı yazılım tarafından hesaplanır MD5 değeri, bileşen kütüphanesinin "dijital parmak izi" ile karşılaştırılır. Karşılaştırma sonuçları tutarlıysa, bileşen kitaplığı güvenli kabul edilir, aksi takdirde virüs girişi nedeniyle güvenli olmadığı kabul edilir.

4.2 bileşen gerçekleştirme

VS2012'de, .NET Framework'ün UserControl sınıfı, BaseInOut bileşen sınıfını oluşturmak için Windows Formundan miras alınır ve Bölüm 4.1'deki bileşen öznitelikleri ve eleman düğümleri, sınıfta C # dili programlamasında uygulanır. tanım < blok > aşağıdaki gibi:

private string block = "Temel kontrol";

Kategori ("Temel özellik") Göz atılabilir (yanlış)

public string Blok

{get {return this.block;} set {this.block = değer;}}

[Kategori ("Temel Özellikler")] [EkranAdı ("Modül Kategorisi")]

genel string ShowBlock {get {return this.block;} set {;}}

Kalan özellikleri sırayla tasarlayın. Ayrıca, TC6 XML şemasındaki geleneksel nesnelerin tanımına göre, bu makale bileşenleri tasarlar ve uygular. < hata > Düğüm öğesi, < bağlayıcı > Düğüm öğesi, bileşende bir hata ve bağlantı bilgisi olup olmadığını gösterir. Dahası, tasarım farenin bileşenin çalışmasına olan özniteliğini fark eder, kullanıcının bileşen pinine çift tıklamasının etkisini değerlendirir ve bileşen pin uç noktası bilgilerini okur. Bileşeni otomatik olarak oluştururken bileşenin karşılık gelen grafik arayüzünü görüntülemek için, ChangeControlSize yöntemi, DrawModuleImage yöntemi ve Modules_Resize yöntemi, bileşen sınıfında programlanmıştır. Son olarak, bileşenin çift tıklama olayı BaseInOutDoubleClick yöntemi yeniden yazılır.Bileşene çift tıkladıktan sonra, bileşen otomatik olarak bir işlem arabirimi oluşturacaktır.Bu arabirimde, yalnızca bileşen türü adını, girdi değişkenlerinin sayısını, çıktı değişkenlerinin sayısını, giriş ve çıktının etkinleştirilip etkinleştirilmeyeceğini ayarlayamazsınız, aynı zamanda önizleme İstenilen etki. Bileşen, Şekil 6'da gösterildiği gibi işlem arayüzünü otomatik olarak oluşturur.

Güvenlik öznitelikleri < DLLMD5 > Eleman düğüm tanımı ve < blok > benzer.

PLC programlama projesinin XML açıklama dosyasındaki bileşen güvenliğinin güvenlik doğrulaması, projedeki bileşen XML açıklamasını XML Şema Tanımı (XSD) aracılığıyla doğrulamaktır. Bir ValidateXMLBySchemaUtils araç sınıfı tanımlayın Projede bileşen güvenliğinin doğrulanması gerektiğinde, doğrulama için ValidateByTC6 yöntemini çağırın. ValidateXMLBySchemaUtils araç sınıfının tasarımı aşağıdaki gibidir:

class ValidateXMLBySchemaUtils {

public void ValidateByTC6 (string XMLName) {

XmlDocument xd = new XmlDocument;

xd.Load (Application.StartupPath + XMLName);

xd.Schemas.Add (null, Application.StartupPath + "TC6_XML_V10.xsd");

ValidationEventHandler eventHandler = new ValidationEventHandler (ValidationEventHandler);

xd.Validate (eventHandler);}

Void ValidationEventHandler (nesne gönderen, ValidationEventArgs e) {

switch (e.Severity) {

case XmlSeverityType.Error:

MessageBox.Show ("Hata: {0}" + e.Message);

kırmak;

case XmlSeverityType.Warning:

MessageBox.Show ("Uyarı {0}" + e.Message);

mola;}}}

5 bileşen doğrulama

5.1 Otomatik bileşen oluşturma doğrulaması

PLC görsel programlamayı gerçekleştirirken, bileşenin otomatik olarak oluşturulmasını gerçekleştirmek için bileşen tipi adını, giriş değişkenlerinin sayısını, çıkış değişkenlerinin sayısını ve yürütme kontrolünü değiştirmek için bileşen otomatik oluşturma arayüzündeki bileşene çift tıklayın. Doğrulama sonucu Şekil 7'de gösterilmektedir.

5.2 Bileşen güvenlik doğrulaması

Etkili bir güvenlik testi tekniği olarak, donanım ve yazılım alanlarının güvenilirliğinin ve güvenliğinin değerlendirilmesinde hata enjeksiyonu tamamen onaylanmıştır [13], bu nedenle bileşen güvenlik doğrulamasında hata ekleme yöntemi kullanılır: (1 ) Bileşen tasarım düzeyinde doğrulama, hataları enjekte etme ve MD5 değerini karşılaştırma Bileşen uygulandıktan sonra dinamik bağlantı kitaplığı (DLL) dosyası olarak bulunur.MD5 hesaplama aracı kullanılarak bileşen kitaplığı DLL dosyasının MD5 değeri 69932c20816d42298dfe58cd54d1b7e1 olarak ölçülür. Dijital parmak izi ". Güvenliğini doğrulamak için, e56fcd99c8e972ac5bb6ee6814c2dddc'nin MD5 değeri, bileşen kitaplığına hata enjeksiyonundan sonra ölçülür ve bileşen kitaplığı dosyasının istila edilip edilmediğini doğrulamak için MD5 değeri karşılaştırılabilir. (2) Hata enjekte edildikten sonra, derlenen PLC projesinin bileşen kısmının XML açıklama dosyası üzerinde XSD doğrulaması yapmak için TC6_XML_V10.xsd dosyasını kullanın ve programlama yazılımı Şekil 8'de gösterildiği gibi bir hata bilgi kutusu açacaktır.

6. Sonuç

IEC61131-3 standart platformuna dayalı ilgili çalışmayı inceledikten sonra, bu makale IEC61131-3 standart grafik programlama dili tarafından tanımlanan fonksiyon bloğu modelini inceleyerek bileşenin görsel şeklini tasarlar ve uygular; TC6 XML şeması çalışması yoluyla, Öznitelik tasarımı, standart platformları geçme hedefine ulaşmıştır; bileşenlerin ve bileşen kitaplıklarının güvenliği buna göre gerçekleştirilmiştir. < bileşenMD5 > Eleman düğümü, < DLLMD5 > Eleman düğümlerinin tasarımı ve uygulaması; VS2012'de, güvenlik bileşenlerinin otomatik olarak oluşturulması .NET bileşen teknolojisi kullanılarak gerçekleştirilir. Son olarak, bileşen kütüphanesinin MD5 değerini "dijital parmak izi" ile karşılaştırarak bileşenin güvenli ve etkili olup olmadığını belirlemek için hata enjeksiyon teknolojisi kullanılır Şimdiye kadar IEC61131-3 standart programlama yazılımında bileşenin yeniden kullanımı ve güvenlik doğrulaması gerçekleştirilmiştir.

Referanslar

[1] Peng Yu. Endüstriyel kontrol programlama dili için uluslararası standart IEC 61131-3 ve etkisi [J] Yurtiçi ve yurtdışında mekatronik teknolojisi, 2006 (4): 53-61.

[2] Deng Shaofang Yazılım geliştirmede bileşen teknolojisinin uygulama araştırması D Chengdu: Southwest Jiaotong Üniversitesi, 2003.

3 Tang Liping Bileşen Teknolojisini Kullanarak Bilgisayar ve PLC Arasında İletişim Araştırması J. Donghua Üniversitesi Dergisi (Natural Science Edition), 2002,28 (6): 66-69.

4 LI X, LI D, YIN X, ve diğerleri Farklı tip PLC'lerden oluşan tesis kontrol sisteminin protokol dönüşümü C Uluslararası Güç Sistemi Teknolojisi Konferansı, 2002: 1509-1512.

[5] Lin Lichun, Lin Qiongqi, Zhang Gongpan Nesne yönelimli PLC üst bilgisayar yazılım platformu tasarımı J. Otomasyon Enstrümantasyonu, 2007, 28 (12): 15-18.

[6] Qin Hua. IEC61131-3 standardına dayalı PLC düzenleme modülünün tasarımı ve uygulaması J Bilgisayar ve Dijital Mühendislik, 2012, 40 (3): 136139.

7 Zhang Haiwei. Hollysys IEC 61131-3 programlama yazılımı platformu J. Automation Expo, 2016, 33 (6): 42-44.

8 JAMRO M, TRYBUS B. IEC 61131-3 kontrol cihazları için programlanabilir insan makine arayüzleri C. 20136. Uluslararası İnsan Sistem Etkileşimleri Konferansı (HSI), 2013: 4855.

9 JOHN K H, MICHAEL T.IEC61131-3: Endüstriyel Otomasyon Sisteminin Programlanması M. Çin Mekatronik Teknolojisi Uygulama Derneği Sekreterliği, çevrilmiş. 2002.

[10] NEMA.Programmable Controllers-Part3: Programlama dilleri S. Virginia: National Electrical Maunfacturers Association, 2003.

[11] Zhou Shigui, Song Yingchao IEC61131-3 endüstriyel kontrol programlama dili uluslararası standardı ve uygulaması application J Bilgisayar ve Bilgi Teknolojisi, 2008 (7): 78-80.

Bugün Dünya AIDS Günü AIDS'i gerçekten anlıyor musunuz?
önceki
4.19'da geçen "Harikalar Diyarında Maceralar" eğlenceli macerayı resmen başlatıyor
Sonraki
Yeni "Blue Wings" oyunu çevrimiçi testi başlatır, ön sipariş veren oyuncular bunu önceden deneyimleyebilir
Bu pragmatik ve aktif gençler
Üç Krallık'tan gelen kaderi ve hatta yürüyen oyunculuk ders kitabıdır.
ARM ve MATLAB GUI'ye Dayalı Sun Görüntü Veri Toplama Sisteminin Tasarımı
Katlanır ekran çağı resmen burada! Rouyu Teknolojisi, dünyanın ilk katlanabilir esnek ekranlı cep telefonunu piyasaya sürdü
Süper ilham verici! Paket servis çocuk, Sichuan'ın dışına kabul edildi ve lisansüstü giriş sınavına hazırlanıyordu.
"Köpek Gözü İnsan Kalbini Görüyor" Yaratıcı Kontrastı Sergiliyor Posterler Angie, evcil köpeğine onunla büyüdüğü için teşekkür etti
FBMC-OQAM sisteminin PAPR'sini azaltmak için bir ön kodlama algoritması
Guangxi'nin istiridye esaslı karidesi 24 saatten daha kısa bir sürede Chongqing'in masasına yüzebilir
Robotik alanında öncü: Profesör Oussama Khatib, Stanford Üniversitesi Robotik Laboratuvarı | GAIR 2017
Kutudan çıkan "Nintendo Labo": beklenenden daha öngörülebilir
Kablosuz Algılayıcı Ağında RPL Yönlendirme Protokolünün Araştırma ve Performans Analizi
To Top