西門子控制單元6SL3055-0AA00-4BA0
西門子S7 PLC的自由通信口模式(Freeport Mode)的通信協(xié)議可自由定義,通信所需要的信息存放在特殊存儲字節(jié)SMB30中,用戶須作如下說明:
奇偶校驗
每個字符的位數(shù)
波特率
自由通信口模式可以接收和發(fā)送數(shù)據(jù)。本例用一個仿真的打印機程序來描述數(shù)據(jù)發(fā)送,再用一個條形碼閱讀程序來說明數(shù)據(jù)接收。
例圖
打印機程序框圖
打印機程序和注解
此程序描述向打印機發(fā)送數(shù)據(jù)。為了簡化此例,窗口下的終端程序可代替打印機作為接收器邊接。打印淚L或終端的組態(tài)特性為9600波特,無奇偶校驗,每字符8位。
本程序長度為13個字
//正確設(shè)置自山通信日模式對此應(yīng)用很重要。
//所需信息裝載在特殊存儲字節(jié)SMB30中。
//這些輸入數(shù)據(jù)可從操作手冊中查詢。
//發(fā)送命令XM丁包含了發(fā)送信息緩沖區(qū)的起始地址,該地址單元中只包含了發(fā)送信息的長度(以字節(jié)為單位)。
條形碼閱讀器程序框圖
條形碼閱讀器程序和注解
該程序描述數(shù)據(jù)接收,條形碼閱讀器通過接日把讀到的數(shù)據(jù)用自山通信日模式發(fā)給SIMATIC S7-200。為簡化此例,窗口下的終端程序可代替條形碼閱讀器作為發(fā)送器連接。
本程序長度為15個字。
西門子控制單元6SL3055-0AA00-4BA0
在西門子S7-200系列PLC中,CPU-214的輸出端Q0.0和Q0.1能夠輸出方波信號,而且方波信號的周期和脈寬均能獨立調(diào)節(jié),其中脈寬指的是在一個周期內(nèi),輸出信號處于高電平的時問長度。
下面這個例子說明了脈寬調(diào)制(PWM)是如何工作的。輸出端Q0.0輸出方波信號,其脈寬每周期遞增0.5秒,周期固定為5秒,并且脈寬的初始值為0.5秒。當(dāng)脈寬達到設(shè)定的最大值4.5秒,脈寬改為每周期遞減0.5秒,自到脈寬為零為止。以上過程周而復(fù)始。
在這個例子中必須把輸出端Q0.0與輸入端10.0連接,這樣程序才能控制PWM。
程序和注解
特殊存儲字節(jié)SMB67用來初始化輸出端00.0的PWM。這個控制字內(nèi)含PWM允許位,修改周期和脈寬的允許位,以及時問基數(shù)選擇位等,山子程序0來調(diào)整這個控制字節(jié)。通過EN}指令,使所有的中斷成為全局允許,然后通過PLSO指令,使系統(tǒng)接受各設(shè)定值,并初始化“P丁O/PWM發(fā)生器",從而在輸出端00.0輸出脈寬調(diào)制(PWM)信號。
另外,周期5秒是通過將數(shù)值5000置入特殊存儲字SMW68來實現(xiàn)的,初始脈寬0.5秒則通過將500寫入特殊存儲字SMW70來實現(xiàn)的。
這個初始化過程是在程序的第一個掃描周期通過執(zhí)行子程序0來實現(xiàn),第一個掃描周期標志是SM0.1=1。當(dāng)一個PWM循環(huán)結(jié)束,即當(dāng)前脈寬為0秒時,將再一次初始化PWM。
輔助內(nèi)存標記M 0.0用來表明脈寬是增加,還是減少,初始化時將這個標記設(shè)為增加。輸出端00.0與輸入端10.0相連,這樣輸出信號民可送到輸入端10.0。當(dāng)?shù)谝粋€方波脈沖輸出時,利用ATC H指令,把中斷程序1(INT1)賦給中斷事件0 (10.0的上升沿)。
每個周期中斷程序1將當(dāng)前脈寬增加0.5秒,然后利用D丁C日指令分離中斷INT1,使這個中斷再次被屏蔽。如果在下次增加時,脈寬大于或等于周期,則將輔助內(nèi)存標記位M 0.0再次置0。這樣就把中斷程序2賦子事件0,并且脈寬也將每次遞減0.5秒。當(dāng)脈寬值減為零時,將再次執(zhí)行,初始化程序(子程序0)。
本程序長度為63個字。