西門子S7-1200PLC系統(tǒng)有五種不同模塊,分別為 CPU 1211C、CPU 1212C 、 CPU 1214C、CPU1215C和CPU1217C。其中的每一種模塊都可以進(jìn)行擴(kuò)展,以*您的系統(tǒng)需要??稍谌魏?CPU 的前方加入一個(gè)信號板,輕松擴(kuò)展數(shù)字或模擬量 I/O,同時(shí)不影響控制器的實(shí)際大小。
產(chǎn)品簡介
詳細(xì)介紹
甘肅西門子S7-1200PLC代理商(價(jià)格實(shí)惠)
裝入堆棧
裝入堆棧指令(LDS)復(fù)制堆棧中的第N個(gè)值到棧頂。棧底的值被推出并消失。
表6--5 裝入堆棧指令的有效操作數(shù)
輸入/輸出 | 數(shù)據(jù)類型 | 操作數(shù) |
N | BYTE | 常數(shù)(0到8) |
如圖6--3中所示,S7- 200用邏輯堆棧來決定控制邏輯。在本例中,“iv0”到“iv7”表示邏輯堆棧的
初始值,“nv”表示指令提供的一個(gè)新值,而“S0”表示邏輯堆棧中存儲(chǔ)的計(jì)算值。
圖6--3 邏輯堆棧指令的操作
實(shí)例:邏輯棧指令
RS觸發(fā)器指令
置位優(yōu)先觸發(fā)器是一個(gè)置位優(yōu)先的鎖存器。當(dāng)置位信號(S1)和復(fù)位信號(R)都為真時(shí),輸出為真。
復(fù)位優(yōu)先觸發(fā)器是一個(gè)復(fù)位優(yōu)先的鎖存器。當(dāng)置位信號(S)和 復(fù)位信號(R1)都為真時(shí),輸出為假。
參數(shù)用于被置位或者復(fù)位的布爾參數(shù)??蛇x的輸出反映 Bit參數(shù)的信號狀態(tài)。
表6--7中給出了范例程序的真值表。
表6--6 RS觸發(fā)器指令的有效操作數(shù)
時(shí)鐘指令
讀實(shí)時(shí)時(shí)鐘和寫實(shí)時(shí)時(shí)鐘
讀實(shí)時(shí)時(shí)鐘(TODR)指令從硬件時(shí)鐘中讀當(dāng)前時(shí)間和日期,并把它裝載到一個(gè)8字節(jié),起始地址為T的時(shí)間緩沖區(qū)中。寫實(shí)時(shí) 時(shí)鐘(TODW)指令將當(dāng)前時(shí)間和日期寫入硬件時(shí)鐘,當(dāng)前時(shí)鐘 存儲(chǔ)在以地址T開始的8字節(jié)時(shí)間緩沖區(qū)中。
時(shí)鐘指令
您必須按照BCD碼的格式編碼所有的日期和時(shí)間值(例如:用
16#97表示1997年)。圖6--4給出了時(shí)間緩沖區(qū)(T)的格式。
時(shí)間日期(TOD)時(shí)鐘在電源掉電或內(nèi)存丟失后,初始化為下列
日期和時(shí)間:
日期: 90年1月1號
時(shí)間: 00:00:00
星 期 幾 : 星 期 日
使ENO=0的錯(cuò)誤條件:
- 0006(間接尋址)
- 0007(TOD數(shù)據(jù)錯(cuò)誤),只對寫實(shí)時(shí)時(shí)鐘指令有效。
- 000C(時(shí)鐘模塊不存在)
提示
S7- 200 CPU不會(huì)檢查和核實(shí)日期與星期是否合理。無效日期February 30 (2月30日)可能被接受。故必須確保輸入的數(shù)據(jù)是正確的。
不要同時(shí)在主程序和中斷程序中使用TODR/TODW指令。如果這樣做,而在執(zhí)行TOD指令時(shí)出現(xiàn)了 執(zhí)行TOD指令的中斷,則中斷程序中的TOD指令不會(huì)被執(zhí)行。SM4.3指示了試圖對時(shí)鐘進(jìn)行兩個(gè)同 時(shí)的訪問(非致命錯(cuò)誤0007)。
在S7-200中日時(shí)時(shí)鐘只使用低有效的兩個(gè)數(shù)字表示年,所以對于2000年,表達(dá)為00。S7-200PLC不以任何方式使用年信息。但是,用到年份進(jìn)行計(jì)算或比較的用戶程序必須考慮兩位的表示方
法和世紀(jì)的變化。在2096年之前可以進(jìn)行閏年的正確處理。
擴(kuò)展讀實(shí)時(shí)時(shí)鐘
擴(kuò)展讀實(shí)時(shí)時(shí)鐘(TODRX)指令從PLC中讀取當(dāng)前時(shí)間、日期和 夏令時(shí)組態(tài) ,并裝載到從由T的地址開始的19字節(jié)緩沖區(qū)內(nèi)。
擴(kuò)展寫實(shí)時(shí)時(shí)鐘
擴(kuò)展寫實(shí)時(shí)時(shí)鐘(TODWX)指令寫當(dāng)前時(shí)間、日期和夏令時(shí)組態(tài)到PLC中由T的地址開始的19字節(jié)緩沖區(qū)內(nèi)。
您必須按照BCD碼的格式編碼所有的日期和時(shí)間值(例如:用16#02表示2002年)。表6--9給出了19字節(jié)時(shí)間緩沖區(qū)(T)的格式
時(shí)間日期時(shí)鐘在電源掉電或內(nèi)存丟失后,初始化下列日期和 時(shí)間:
使ENO=0的錯(cuò)誤條件:
- 0006(間接尋址)
- 000C(時(shí)鐘卡不存在)
- 0091(操作數(shù)超出范圍)
使ENO=0的錯(cuò)誤條件:
- 0006(間接尋址)
- 0007(TOD數(shù)據(jù)錯(cuò)誤)
- 000C(時(shí)鐘卡不存在)
- 0091(操作數(shù)超出范圍)
日期: 90年1月1號
時(shí)間 00:00:00
星期幾: 星期日
提示S7- 200 CPU僅在字節(jié)8中選擇了“用戶”模式時(shí)才使用字節(jié)9--18。否則,返回由STEP 7- Micro/WIN或SET_RTCX指令寫入這些字節(jié)的后一個(gè)數(shù)值。 |
1 EU約定:在UTC三月份的后一個(gè)星期日的上午1:00向前調(diào)整時(shí)間一個(gè)小時(shí)。在UTC時(shí)間十月份的后一個(gè)星期日的上午2:00向后調(diào)整時(shí)間一個(gè)小時(shí)。(當(dāng)進(jìn)行修正時(shí),當(dāng)?shù)貢r(shí)間依據(jù)于與UTC的時(shí)差。)。
2 US約定:在當(dāng)?shù)貢r(shí)間四月份的*個(gè)星期日的上午2:00向前調(diào)整時(shí)間一個(gè)小時(shí)。在當(dāng)?shù)貢r(shí)間十月份的后一個(gè)星期日的上午
2:00向后調(diào)整時(shí)間一個(gè)小時(shí)。
3 澳大利亞約定:在當(dāng)?shù)貢r(shí)間十月份的后一個(gè)星期日上午2:00向前調(diào)整時(shí)間一個(gè)小時(shí)。在當(dāng)?shù)貢r(shí)間三月份的后一個(gè)星期日的上午3:00向后調(diào)整時(shí)間一個(gè)小時(shí)。
4 澳大利亞(塔斯馬尼亞島)約定:在當(dāng)?shù)貢r(shí)間十月份的*個(gè)星期日的上午2:00向前調(diào)整時(shí)間一個(gè)小時(shí)。在當(dāng)?shù)貢r(shí)間三月份的后一個(gè)星期日的上午3:00向后調(diào)整時(shí)間一個(gè)小時(shí)。
5 新西蘭約定:在當(dāng)?shù)貢r(shí)間十月份的*個(gè)星期日的上午2:00向前調(diào)整時(shí)間一個(gè)小時(shí)。在當(dāng)?shù)貢r(shí)間三月份的*個(gè)星期日或三月
15號以后的上午3:00向后調(diào)整時(shí)間一個(gè)小時(shí)。
通訊指令
網(wǎng)絡(luò)讀寫指令
網(wǎng)絡(luò)讀指令(NETR)初始化一個(gè)通訊操作,根據(jù)表(TBL)的定 義,通過端口從遠(yuǎn)程設(shè)備上采集數(shù)據(jù)。網(wǎng)絡(luò)寫指令
(NETW)初始化一個(gè)通訊操作,根據(jù)表(TBL)的定義,通過
端口向遠(yuǎn)程設(shè)備寫數(shù)據(jù)。
使ENO=0的錯(cuò)誤條件:
- 0006(間接尋址)
- 如果功能返回出錯(cuò)信息,會(huì)置位表狀態(tài)字節(jié)中的E。(見圖6--5)
網(wǎng)絡(luò)讀指令可以從遠(yuǎn)程站點(diǎn)讀取多16個(gè)字節(jié)的信息,網(wǎng)絡(luò)寫 指令可以向遠(yuǎn)程站點(diǎn)寫多16個(gè)字節(jié)的信息。
在程序中,您可以使用任意條網(wǎng)絡(luò)讀寫指令,但是在同一時(shí) 間,多只能有8條網(wǎng)絡(luò)讀寫指令被激活。例如,在所給的S7- 200 CPU中,可以有4條網(wǎng)絡(luò)讀指令和4條網(wǎng)絡(luò)寫指令, 或者2條網(wǎng)絡(luò)讀指令和6條網(wǎng)絡(luò)寫指令在同一時(shí)間被激活。
您可以使用網(wǎng)絡(luò)讀寫向?qū)С绦?。要啟?dòng)網(wǎng)絡(luò)讀寫向?qū)С绦?,在命令菜單中選擇工具 > 指令向?qū)?,并且在指令向?qū)Т翱谥羞x擇網(wǎng)絡(luò)讀寫。
表6--10 網(wǎng)絡(luò)讀寫指令的有效操作數(shù)
輸入/輸出 | 數(shù)據(jù)類型 | 操作數(shù) |
TBL | BYTE | VB、MB、*VD、*LD、*AC |
PORT | BYTE | 常數(shù) 對于CPU 221、CPU 222、CPU 224: 0對于CPU 224XP、CPU 226: 0或1 |
圖6--5中給出了TBL參數(shù)參照表,表6--11列出了錯(cuò)誤代碼。
圖6--6給出了一個(gè)實(shí)例來解釋網(wǎng)絡(luò)讀寫指令的使用。本例中,考慮一條生產(chǎn)線正在灌裝黃油桶并將其 送到四臺(tái)包裝機(jī)(打包機(jī))中的一臺(tái)上。打包機(jī)把8個(gè)黃油桶包裝到一個(gè)紙板箱中。一個(gè)分流機(jī)控制著黃 油桶流向各個(gè)打包機(jī)。4個(gè)CPU221模塊用于控制打包機(jī),一個(gè)CPU222模塊安裝了TD200操作器接口,被用來控制分流機(jī)。
圖6--6 網(wǎng)絡(luò)讀寫指令舉例
圖6--7中給出了2號站中接收緩沖區(qū)(VB200)和發(fā)送緩沖區(qū)(VB300)中的數(shù)據(jù)。S7--200使用網(wǎng)絡(luò)讀指令 不斷地讀取每個(gè)打包機(jī)的控制和狀態(tài)信息。每次某個(gè)打包機(jī)包裝完100箱,分流機(jī)會(huì)注意到,并用網(wǎng) 絡(luò)寫指令發(fā)送一條消息清除狀態(tài)字。
圖6--7 網(wǎng)絡(luò)讀寫指令中TBL數(shù)據(jù)舉例
實(shí)例:程序段讀和程序段寫指令
實(shí)例:程序段讀和程序段寫指令
發(fā)送和接收指令
發(fā)送指令(XMT)用于在自由端口模式下依靠通訊口發(fā)送數(shù)據(jù)。
接收指令(RCV)啟動(dòng)或者終止接收消息功能。您必須為接收操 作開始和結(jié)束條件。從的通訊口接收到的消息被存儲(chǔ) 在數(shù)據(jù)緩沖區(qū)(TBL)中。數(shù)據(jù)緩沖區(qū)的*個(gè)數(shù)據(jù)指明了接收到的字節(jié)數(shù)。
使ENO=0的錯(cuò)誤條件:
- 0006(間接尋址)
- 0009(在Port0同時(shí)發(fā)送和接收)
- 000B(在Port1同時(shí)發(fā)送和接收)
- RCV參數(shù)錯(cuò)誤,置位6或者SM186.6
- S7- 200CPU沒有處于自由端口模式。
表6--12 發(fā)送和接收指令的有效操作數(shù)
輸入/輸出 | 數(shù)據(jù)類型 | 操作數(shù) |
TBL | BYTE | IB、QB、VB、MB、SMB、SB、*VD、*LD、*AC |
PORT | BYTE | 常數(shù) 對于CPU 221、CPU 222、CPU 224: 0對于CPU 224XP、CPU 226: 0或1 |
關(guān)于使用自由端口模式的更多信息,見226第7章中用自由端口模式創(chuàng)建用戶自定義協(xié)議部分。
使用自由端口模式控制串行通訊口
通過編程,您可以選擇自由端口模式來控制S7- 200的串行通訊口。當(dāng)選擇了自由端口模式,用戶程序通過使用接收中斷、發(fā)送中斷、發(fā)送指令和接收指令來控制通訊口的操作。當(dāng)處于自由端口模式時(shí),通訊協(xié)議*由梯形圖程序控制。SMB30 (對于端口0)和SMB130(對于端口1,如果您的S7-200有兩個(gè)端口的話)被用于選擇波特率和校驗(yàn)類型。
當(dāng)S7- 200處于STOP模式時(shí),自由端口模式被禁止,重新建立正常的通訊(例如:編程設(shè)備的訪問)。在較簡單的情況下,可以只用發(fā)送指令(XMT)向打印機(jī)或者顯示器發(fā)送消息。其他例子包括與條碼閱
讀器、稱重計(jì)和焊機(jī)的連接。在每種情況下,您都必須編寫程序,來支持在自由端口模式下與S7- 200通訊的設(shè)備所使用的協(xié)議。
只有當(dāng)S7- 200處于RUN模式時(shí),才能進(jìn)行自由端口通訊。要使能自由端口模式,應(yīng)該在SMB30 (端口0)或者SMB130 (端口1)的協(xié)議選擇區(qū)中設(shè)置01。處于自由端口通訊模式時(shí),不能與編程設(shè)備通訊。
提示
可以使用特殊寄存器位SM0.7來控制自由端口模式。SM0.7反映的是操作模式開關(guān)的當(dāng)前位置。當(dāng)SM0.7等于0時(shí),開關(guān)處于TERM位置;當(dāng)SM0.7=1時(shí),操作模式開關(guān)位于RUN位置。如果只有模式開關(guān)處于RUN位置時(shí),才允許自由端口模式,您可以將開關(guān)改變到其他位置上,使用編程設(shè)備監(jiān) 控S7- 200的運(yùn)行。
將PPI通訊轉(zhuǎn)變?yōu)樽杂啥丝谀J?/p>
SMB30和SMB130分別配置通訊口0和通訊口1,并且為自由端口操作提供波特率、校驗(yàn)和數(shù)據(jù)位數(shù)
的選擇。自由端口的控制字節(jié)如圖6--8所示。每一個(gè)配置都產(chǎn)生一個(gè)停止位。
圖6--8 用于自由端口模式的SM控制字節(jié)(SMB30或SMB130)
發(fā)送數(shù)據(jù)
發(fā)送指令使您能夠發(fā)送一個(gè)字節(jié)或多個(gè)字節(jié)的緩沖區(qū),多為255個(gè)。 圖6--9給出了發(fā)送緩沖區(qū)的格式。
如果有一個(gè)中斷程序連接到發(fā)送結(jié)束事件上,在發(fā)送完緩沖區(qū)中的后一個(gè)字符時(shí),則會(huì)產(chǎn)生一個(gè)中斷(對端口0為中斷事件9,對端口1為中斷事件26)。
圖6--10 接收緩沖區(qū)的格式
您可以不使用中斷,通過監(jiān)視SMB86 (端口0)或者SMB186 (端口1)來接收消息。當(dāng)接收指令未被激
活或者已經(jīng)被中止時(shí),這一字節(jié)不為0; 當(dāng)接收正在進(jìn)行時(shí),這一字節(jié)為0。
如表6--13中所示,接收指令允許您選擇消息的啟始和結(jié)束條件。使用SMB86至SMB94對端口0進(jìn)行 設(shè)置,SMB186至SMB194對端口1進(jìn)行設(shè)置。
提示
當(dāng)超限或有校驗(yàn)錯(cuò)誤時(shí),接收消息功能會(huì)自動(dòng)終止。必須為接收消息功能操作定義一個(gè)啟始條件和
一個(gè)結(jié)束條件(大字符數(shù))。
表6--13 接收緩沖區(qū)字節(jié)(SMB86到SMB94和SMB186到SMB194)
接收指令的啟動(dòng)和結(jié)束條件
接收指令使用接收消息控制字節(jié)(SMB87或SMB187)中的位來定義消息起始和結(jié)束條件。
提示
當(dāng)接收指令執(zhí)行時(shí),在接收口上有來自其他器件的信號,接收消息功能有可能從一個(gè)字符的中間開 始接收字符,從而導(dǎo)致校驗(yàn)錯(cuò)誤和接收消息功能的中止。如果校驗(yàn)沒有被使能,接收到的消息有可 能包含錯(cuò)誤字符。當(dāng)起始條件被為一個(gè)特定的起始字符或任意字符時(shí),這種情況有可能發(fā)生, 正象下面第2.條和第6.條中所描述的那樣。
甘肅西門子S7-1200PLC代理商(價(jià)格實(shí)惠)