Siemens S7-200CPU'nun iletişim portu, serbest port moduna ayarlanabilir. Serbest bağlantı noktası modunu seçtikten sonra, kullanıcı programı iletişim bağlantı noktasının çalışmasını tam olarak kontrol edebilir ve iletişim protokolü de tamamen kullanıcı programı tarafından kontrol edilir.
S7200CPU üzerindeki iletişim portu, elektriksel olarak standart bir RS-485 yarı çift yönlü seri iletişim portudur. Bu seri karakter iletişiminin biçimi şunları içerebilir:
Bir başlangıç parçası
7 veya 8 karakter (veri baytı)
Bir tek / çift eşlik biti veya eşlik biti yok
Biraz dur
Freeport iletişim hızı baud hızı 1200, 2400, 4800, 9600, 19200, 38400, 57600 veya 112500 olarak ayarlanabilir.
Bu formatlara uyan tüm seri haberleşme cihazları teorik olarak S7-200CPU ile haberleşebilir.
Serbest bağlantı noktası modu esnek bir şekilde uygulanabilir. Micro / WIN'in iki komut kitaplığı (USS ve ModbusRTU), serbest port modu programlaması kullanılarak uygulanır.
Freeport iletişim programında hata ayıklarken, PC ve CPU'yu bağlamak için PC / PPI kablosunu (Freeport iletişim moduna ayarlı) kullanabilir ve Freeport programında hata ayıklamak için PC'de seri bağlantı noktası hata ayıklama yazılımını (veya Windows için HyperTerminal) çalıştırabilirsiniz.
USB / ÜFE kablosu ve CP kartı, ücretsiz bağlantı noktası hata ayıklamasını desteklemez.
Freeport İletişim Noktaları
Freeport iletişimini uygulamak için, önce iletişim bağlantı noktasını Freeport modu olarak tanımlayın ve ilgili iletişim baud hızını ve yukarıdaki iletişim formatını aynı anda ayarlayın. Kullanıcı programı, özel bellek SMB30 (port 0 için) ve SMB130 (port 1 için) aracılığıyla iletişim portunun çalışma modunu kontrol eder. Ayrıntılar için aşağıdaki şekle bakın
CPU iletişim portu serbest port modunda çalıştığında, iletişim portu diğer iletişim protokollerini (PPI gibi) desteklemez ve bu iletişim portu artık programlama yazılımı Micro / WIN ile iletişim kuramaz. CPU durdurulduğunda, Freeport çalışamaz ve Micro / WIN CPU ile iletişim kurabilir.
İletişim portunun çalışma modu, çalışma sırasında kullanıcı programı tarafından tekrar tekrar tanımlanabilir.
Hata ayıklama sırasında Freeport modu ile PPI modu arasında geçiş yapmanız gerekirse, iletişim portunun modunu belirlemek için SM0.7 durumunu kullanabilirsiniz; ve SM0.7 durumu, CPU çalışma durumu anahtarının konumunu yansıtır (RUN'da SM0.7 = "1", SM0.7 = "0" STOP'ta)
Freeport iletişiminin temel komutları gönderme (XMT) ve alma (RCV) komutlarıdır. Freeport iletişiminde yaygın olarak kullanılan kesintiler arasında "komut sonu kesintisi alma", "komut sonu kesintisi gönderme" ve iletişim portu ara belleği alma kesintisi bulunur.
Ağ okuma ve yazma talimatlarına (NetR / NetW) benzer şekilde, kullanıcı programı iletişim yongasını doğrudan kontrol edemez, ancak işletim sistemini geçmelidir. Kullanıcı programı, işletim sistemi ile ilgili bilgileri değiş tokuş etmek için iletişim veri arabelleğini ve özel belleği kullanır.
XMT ve RCV komutlarının veri tamponu benzerdir, başlangıç baytı gönderilecek veya alınacak karakterlerin sayısıdır, ardından veri baytının kendisi gelir. Alınan mesaj başlangıç veya bitiş karakterleri içeriyorsa, bunlar da veri baytları olarak sayılır.
XMT ve RCV komutlarını çağırırken, sadece iletişim portunun başlangıç bayt adresi ve veri arabelleği gereklidir.
XMT ve RCV komutları ile NetW / NetR komutları arasındaki fark, bunların ağdaki iletişim nesnesinin "adresi" ile hiçbir ilgisinin olmaması, ancak yalnızca yerel iletişim portunda çalışmasıdır. Ağda birden fazla cihaz varsa, mesaj adres bilgilerini içermelidir; adres bilgilerini içeren bu mesajlar, XMT ve RCV talimatlarının işleme nesneleridir.
S7200'ün haberleşme portu yarı çift yönlü bir RS-485 yongası olduğundan, XMT ve RCV komutları aynı anda geçerli olamaz.
XMT ve RCV talimatları
XMT (gönder) komutunun kullanımı nispeten basittir. RCV (alma) komutu biraz daha fazla kontrol gerektirir.
RCV talimatının temel çalışma süreci şöyledir:
Mantık koşulu karşılandığında, RCV komutunu başlatın (bir kez), alma bekleme durumuna girin
İletişim portunu izleyin, ayarlanan mesaj başlangıç koşulunun karşılanmasını bekleyin ve ardından mesaj alma durumuna girin
Ayarlanan mesaj bitiş koşulları karşılanırsa, mesaj sona erer ve ardından alma durumundan çıkar
Bu nedenle, RCV talimatı, başlatıldıktan sonra mesajı zorunlu olarak almaz.Mesaj alımını başlatmak için herhangi bir koşul yoksa, her zaman alım için bekleme durumunda olacaktır; mesaj hiç başlamaz veya biterse, iletişim portu her zaman alıcı durumundadır. Şu anda XMT komutunu çalıştırmayı denerseniz, hiçbir mesaj gönderilmeyecektir.
Bu nedenle, XMT ve RCV'nin aynı anda çalıştırılmamasını sağlamak çok önemlidir.Kesme programında başka bir komut başlatmak için gönderme tamamlama kesme ve alma tamamlama kesme işlevlerini kullanabilirsiniz.
"S7-200 Sistem Kılavuzu" ve Micro / WIN çevrimiçi yardımda XMT ve RCV komutlarının kullanımına bir örnek vardır. Bu örnek çok klasiktir ve Freeport İletişimini öğrenirken bunu tamamlamanız şiddetle tavsiye edilir. Rutin, aşağıdaki şekle bakın
Kesinti alan karakter
S7200CPU, interrupt fonksiyonunu alan iletişim portu karakterini sağlar.İletişim portu bir karakter aldığında, bir interrupt oluşturulur ve alınan karakter geçici olarak SMB2 özel hafızasında saklanır. İletişim portları Port0 ve Port1 SMB2'yi paylaşır, ancak iki portun karakter alım kesme sayıları farklıdır.
Her karakter alındığında, bir kesme oluşturulur. Sürekli mesaj iletimi için, kesinti hizmeti rutininde kullanıcı tarafından belirtilen mesaj saklama alanında ayrı karakterlerin düzenlenmesi gerekir. Bu işlevi gerçekleştirmek için dolaylı adresleme kullanmak daha iyi olabilir.
Yüksek iletişim hızları için, karakter kesme alma yöntemi, kesme programının yürütme hızının yeterince hızlı olmasını gerektirir.
Genel olarak, son karakteri RCV komutunun son koşulu olarak kullanmak daha güvenilirdir. İletişim ortağının mesaj çerçevesi belirsiz bir karakterle (bayt) (bir kontrol kodu vb. Gibi) biterse, mesaj veya karakter zaman aşımı RCV komutunu sonlandırmak için bir koşul olarak belirtilmelidir. Ancak genellikle iletişim ortağının katı protokol düzenlemeleri olmayabilir ve iş güvenilir olmayabilir, bu da RCV talimatının normal şekilde sona ermemesine neden olabilir. Bu durumda, karakter alım kesme işlevi kullanılabilir. Aşağıda gösterildiği gibi