西門子博途S7-12001500通訊庫LCom的使用(1)——建立斷開連線

上一篇文章我們介紹瞭如何獲取LCom通訊庫、如何將其新增到專案中及LCom庫檔案的介紹,其中詳細介紹了函式塊LCom_Communication的引數。今天這篇文章,我們主要介紹LCom的使用方法,包括怎樣建立通訊連線及怎樣斷開連線,這其中我們會介紹資料型別:typeLCom_Config。關於資料的傳送和接收將在下一篇文章介紹。

本文包括兩個主題:

建立通訊連線;

斷開通訊連線;

西門子博途S7-12001500通訊庫LCom的使用(1)——建立斷開連線

在介紹之前,我們先記住LCom_Communication的指令初始狀態,如下圖所示:

西門子博途S7-12001500通訊庫LCom的使用(1)——建立斷開連線

1、建立通訊連線

要想與通訊夥伴建立連線,需要配置引數“configuration”,它的資料型別是LCom庫的自定義型別:typeLCom_Config。為此,我們新建立一個全域性資料塊:DBLCom,在其中新增一個變數,名稱為“LComConfiguration”,其資料型別設定為“typeLCom_Config”。如下圖所示:

可以看到,typeLCom_Config由三部分組成:connection、sender和timeSync,我們來分別介紹下:

1。1、typeLCom_Config的connection

connection的各元素的含義如下面的表格所示:

註解①:上一篇文章我們介紹過,LCom通訊庫可用標準的開放式TCP通訊協議,同時它又自定義了一個稱為“LCom”的協議。我們在使用函式塊時,透過引數comService來確定採用哪種通訊協議。comService有兩種取值:1=LCOM_TCP_CONNECTION,即使用開放式TCP通訊協議;2=LCOM_LCOM_CONNECTION,即使用LCom協議;預設設定為後者。

註解②:用來設定通訊的角色。我們知道,TCP通訊協議有兩種角色:伺服器(Server)和客戶端(Client)。伺服器總是被動等待連線,而客戶端則主動進行連線。如果作為伺服器,則只需要設定本地IP和埠號,上表中的引數partnerPort(通訊夥伴埠號)和partnerIP(通訊夥伴IP)可以不設定的;如果作為客戶端,則需要主動連線伺服器。因此,必須設定通訊夥伴的埠號和IP地址(當然,本地的也要設定);

註解③:當IsClient設定為FALSE,即作為伺服器的角色時,用來設定是否允許任何通訊同夥的連線。預設為TRUE,即任何通訊夥伴的連線請求都接受。如果設定為FALSE,則同時還需要設定“partnerIP”引數,這種情況下伺服器僅接受該IP地址的通訊連線請求;

註解④:僅在LCom協議下使用,用來設定心跳訊號的週期。在LCom協議下,如果通訊夥伴之間沒有啟動資料傳輸,則以該週期傳送心跳訊號,用於判斷通訊是否正常;

1。2、typeLCom_Config的sender

sender包括cycleTime和ackTimeout,具體含義見下面的表格:

註解⑤:當啟動資料傳送後,透過該引數設定週期性傳送資料的時間間隔。取值範圍:T#0ms。。。T#24d20h31m23s647ms,預設T#1s;

註解⑥:該引數僅在LCom協議下使用,用來設定確認超時的時間。當在該時間內沒有收到通訊夥伴的確認訊號,則關閉當前連線,並嘗試重新建立連線;

關於資料傳送我們將在下一篇文章詳細介紹;

1。3、typeLCom_Config的timeSync

timeSync用來與通訊夥伴進行時間同步,僅在LCom協議下使用。各元素的含義如下表所示:

註解⑦:傳送模式包括三種:

0=LCOM_NO_TIME_SYNC,即不傳送,這是預設設定;

1=LCOM_CYCLE_TIME_SYNC,以週期性方式傳送同步時間戳,同步週期在引數“cycleTime”中設定;

2=LCOM_TIME_OF_DAY_TIME_SYNC,以時鐘方式傳送同步時間戳,時鐘設定在引數“sendAtTimeOfDay”;

註解⑧:當傳送模式設定為“1”(LCOM_CYCLE_TIME_SYNC)時,用來設定迴圈傳送的週期,取值範圍:T#1ms 。。 T#24d20h31m23s647ms,預設T#1s;

註解⑨:當傳送模式設定為“2”(LCOM_TIME_OF_DAY_TIME_SYNC)時,用來設定傳送的時鐘,預設為:TOD#05:00:00。000;

到這裡,我們詳細介紹了configuration的結構。當引數已經正確配置好後,給“enable”引數一個上升沿,將會嘗試與通訊夥伴建立連線。此時“busy”輸出位TRUE,表示正在建立連線;當成功建立連線後,“connected”變為TRUE;“status”的值也在不同的過程發生變化,如下圖所示:

西門子博途S7-12001500通訊庫LCom的使用(1)——建立斷開連線

如果使用LCom協議,不同版本(V1和V2)之間的第一次通訊協商會發生錯誤,之後會從新建立連線,直至“connected”變為TRUE;

2、斷開通訊連線

“enable”引數的下降沿會將通訊連線斷開,“connected”變為“FALSE”,“busy”和“status”也會發生變化,如下圖所示:

西門子博途S7-12001500通訊庫LCom的使用(1)——建立斷開連線

好了,關於LCom通訊庫使用方法——建立/斷開通訊連線就先介紹到這裡。

我的微信影片號分享一些工控小知識,歡迎觀看:

TAG: LCom通訊連線設定