Siemens PLC, iletişimi gerçekleştirmek için Freeport kullanır ve kesinti ile işbirliği yapmanın etkisi iyidir! Açıklamak için grafik örnekler!

Daha önce bir Freeport iletişim örneğinden bahsetmiştik, bugün kesintili bir Freeport iletişim örneğinden bahsedeceğiz.

Panasonic serisi servo sürücülerle kontrol yaparken olduğu gibi bazı özel durumlarda, verilerin güvenliğini sağlamak için, verileri birden çok kez değiştirmemiz gerekir, bu da iletişim süresinin sıkı kontrolünü gerektirir. O zaman iletişim şu anda PLC için en önemli şeydir, bu nedenle önce PLC'nin normal işlevini kesmemiz ve iletişimin kesilmesini gerektiren iletişimi işlememiz gerekir.

Örnek: İki S7-200 SMART CPU (port 0) birbirleriyle iletişim kurmak için boş port iletişimini kullanır

(Bu makale sadece serbest port iletişimi ve kesintiyi göstermektedir. Bu iki PLC arasındaki iletişimi gerçekleştirmek istiyorsanız, aslında en iyisi Ethernet iletişimi için sihirbazı kullanmaktır. Fırsatımız olup olmadığını da açıklayacağız!)

İletişim görevi: CPU1, CPU'nun gerçek zamanlı saatini CPU2'ye göndermek için saniyede bir XMT talimatını tetikler; CPU2, CPU1 tarafından gönderilen bilgileri aldıktan sonra hemen CPU2'nin gerçek zamanlı saatini CPU1'e döndürür.

Kablolama: Her S7-200 SMART CPU bir Ethernet portu ve bir RS485 portu (port 0) sağlar.Standart CPU ayrıca SB CM01 sinyal kartını (port 1) destekler.Sinyal panosu STEP 7-Micro / WIN SMART yazılımından geçirilebilir RS232 iletişim portu veya RS485 iletişim portu olarak yapılandırın.

CPU iletişim bağlantı noktası pin ataması

1. CPU1 programlama

1.1. CPU1'in ana program programlaması şekilde gösterilmiştir:

CPU1 ana programı

Program açıklaması:

1. SMB30 = 2 # 00001001 (serbest bağlantı noktası iletişimi, baud hızı 9600 bps, 8 veri biti, eşlik yok) ayarlayın.

2. SMB87 = 2 # 10010100'ü ayarlayın, mesaj alımı için başlangıç koşulu olarak boşta hat algılamayı kullanın ve mesaj alımı için bitiş koşulu olarak karakterler arası zamanlayıcıyı kullanın.

3. Boşta kalan hat zamanlayıcısını SMW90 = 5 ms, karakterler arası zamanlayıcı SMW92 = 5 ms olarak ayarlayın ve alınan maksimum karakter sayısı SMB94 = 10'a izin verin.

4. Tamamlama olayını göndermek ve kesmeyi etkinleştirmek için INT_0 interrupt alt yordamını iletişim portu 0'a bağlayın.

5. CPU'nun gerçek zamanlı saatini her saniye okuyun ve gönderme tamponunun uzunluğunu 8 karaktere ayarlayın.

6. XMT komutunu uygulamadan önce SM87.7 = 0'ı ayarlayın ve mesaj alımını sonlandırmak için aynı anda RCV komutunu yürütün.

7. CPU'nun gerçek zamanlı saatini göndermek için saniyede bir XMT komutunu yürütün.

1.2, CPU1 tamamlama interrupt alt rutini INT_0 programlama gönderme

INT_0 kesme alt yordamı, SMB87 (SM87.7 = 1) ayarını geri yüklemek ve CPU2 yanıt bilgisini almaya başlamak için RCV komutunu yürütmek için kullanılır. Program Şekil 4'te gösterilmektedir:

CPU1 interrupt alt rutini INT_0

2. CPU2 programlama

2.1. CPU2 ana program programlaması şekilde gösterilmiştir:

CPU2 ana programı

1. SMB30 = 2 # 00001001 (serbest bağlantı noktası iletişimi, baud hızı 9600 bps, 8 veri biti, eşlik yok) ayarlayın.

2. SMB87 = 2 # 10010100'ü ayarlayın, mesaj alımı için başlangıç koşulu olarak boşta hat algılamayı kullanın ve mesaj alımı için bitiş koşulu olarak karakterler arası zamanlayıcıyı kullanın.

3. Boşta kalan hat zamanlayıcısını SMW90 = 5 ms, karakterler arası zamanlayıcı SMW92 = 5 ms olarak ayarlayın ve alınan maksimum karakter sayısı SMB94 = 10'a izin verin.

4. Tamamlama olayını almak için INT_0 interrupt alt rutini 0 iletişim portuna ve interrupt alt rutini INT_1 iletişim portu 0'a tamamlanma olayını göndermek ve kesmeyi etkinleştirmek için bağlayın.

5. Yürütmek üzere RCV komutunu çağırmak için SM0.1'i kullanın.

2.2. CPU2, INT_0 programlama tamamlama interrupt alt rutini alır

INT_0 kesme alt yordamı, CPU gerçek zamanlı saatini okumak ve gerçek zamanlı saat bilgisini göndermek için XMT komutunu çağırmak için kullanılır. Program şekilde gösterilmiştir.

CPU2 tamamlama interrupt alt rutini INT_0 alır

2.3. CPU2 gönderme tamamlama interrupt alt rutini INT_1 programlama

INT_1 interrupt alt rutini, RCV komutunu yürütmek ve yeni bir mesaj alma görevi başlatmak için kullanılır. Program Şekil 7'de gösterilmektedir.

CPU2 gönderme tamamlama interrupt alt rutini INT_0

WeChat değişikliğinin nerede harcandığını bilmiyorum? Endişelenme, buna bak ve anlayacaksın!
önceki
Cecilia Cheung'un üçüncü doğum babasının başka bir "adayı" mı var? Master Star biraz çaresizdi, stüdyo cevap vermekten yorulmuştu
Sonraki
Satış öncesi | Otomotiv endüstrisinin tüm endüstri zinciri hakkında 2018 isabetli ayrıntılı rapor
% 50'nin üzerine çıktıktan sonra sessizce geri arama! En hızlı GSYİH büyümesine sahip eyalet başkenti, emlak piyasası hassas bir anı başlattı
Meitu'nun meraklı isim testi yöntemi yanıyor! Bir teknoloji devleri çemberini test ettikten sonra, en düşük seviyedeydi.
İOS11 için en son gizli hileler haritayı çalıştırmayı daha kolay hale getiriyor!
Elektrikçiler çok düşük mü ödüyor? Aylık 10.000 yuan'ın üzerinde maaş nasıl elde edilir, 6. Madde çok önemlidir!
Zhong Liti'nin kızı 21. yaş gününü kutluyor, gözleri derin ve İngiltere'yi takıyor ve baş parmağında elmas yüzük ile bekar görünüyor!
Şangay "Araba Tanrısı"! Sekiz yaşındaki çocuk bir kıvrım attı ve 8 kilometre boyunca büküldü ...
2017 Bubble Network Teknolojisi Weathervane Yıllık Ürün Seçimi-Yeni Teknoloji Smart Digital
Wolf Warriors 2'deki soğuk cephenin bu kadar içebileceğini hayal edin? O zaman bu akşamdan kalma eserine gerçekten ihtiyacın var!
İzolasyon transformatörü gerçekten güvenli mi? Bu makale, izolasyon transformatörünü anlamanızı sağlar!
Jia Jingwen, hamile ateşli annesiyle bir fotoğraf çekti, Qiu Meining şişmiş bir karnı vardı ve Chen Yihan şikayet etmek için bilimden uzaktı
iPhone8 plus tamamen Samsung Note8 tarafından mı patlatıldı? Haha, gerçek yüz yüze!
To Top