西門子電源模塊6SL3130-7TE23-6AA3現(xiàn)貨供應
plc內(nèi)部特殊存儲器位smb30和smb130分別配置通訊端口0和1,為自由端口通訊選擇波特率、奇偶校驗和數(shù)據(jù)位數(shù)。自由端口的控制字節(jié)描述如下所示
例如:在通訊協(xié)議中規(guī)定奇偶校驗為奇校驗、每個字符的數(shù)據(jù)為8位、波特率為19200、自由口協(xié)議,采用通訊端口0,則在plc初始化程序中將smb30賦值為0c5h。
例://串口初始化
…
network7
ldsm0.0
movb16#c5,smb30//波特率為19200奇校驗//1起始位1停止位8數(shù)據(jù)位
eni//允許中斷
movb2,smb34
movb20,smb35
atchint_0,8
…
5、PLC實時數(shù)據(jù)處理
由于s7-200系列plc在自由口模式下,通訊協(xié)議由梯形圖程序或stl編輯器控制,程序可以使用接收中斷、發(fā)送中斷、發(fā)送指令和接收指令來控制通訊操作。cpu連續(xù)掃描用戶程序,執(zhí)行用戶任務。plc在程序執(zhí)行過程中,基于穩(wěn)定、快速靈活等方面考慮,cpu每個掃描周期都通過輸入輸出映像寄存器來執(zhí)行實際輸入輸出操作,即讀實際輸入點值到映像寄存器、寫映像寄存器值到實際輸出點。由于在中斷中不能順利進行數(shù)據(jù)讀寫操作,因此,可通過編程,利用plc循環(huán)掃描執(zhí)行程序的特點,使得在程序掃描期間實現(xiàn)數(shù)據(jù)存儲區(qū)與輸入輸出映像寄存器區(qū)交換數(shù)據(jù)。
在本實例中,plc上電初始化后轉(zhuǎn)入接收字符中斷,當上位機發(fā)出查詢命令后,plc判斷所發(fā)命令的地址和地址補碼是否正確;如果正確判斷上位機是向plc發(fā)送命令還是查詢plc狀態(tài);如果執(zhí)行命令則plc轉(zhuǎn)入主程序執(zhí)行相關命令,如果查詢plc狀態(tài)則將協(xié)議定義的信息發(fā)送給上位機,上位機收到信息后發(fā)送應答幀給plc。
例:interrupt0//接收開始
network1
ldnsm3.0
ab=smb2,vb0
movw+0,ac0
movd&vb600,vd638
movbsmb2,*vd638
xorwsmw1,ac0
movbac0,vb300
atchint_1,8
atchint_6,11
creti
network2
ldsm0.0
dtch8
atchint_6,10
interrupt1//接收地址補碼
network1
ldnsm3.0
ansm1.0
movbsmb2,*vd638
xorwsmw1,ac0
network2
ldsm0.0
atchint_6,10
interrupt2//接收命令后判斷
…
network3//發(fā)送信息
ldw=ac2,+0
ab=vb301,vb604
ab=vb603,16#00
atchint_4,10
dtch11
creti
network4
ldsm0.0
wdr
…
network7
ldsm0.0
sm31.0,1
dtch11
atchint_5,10
interrupt3//接收應答字節(jié)
network1
ldnsm3.0
ansm1.0
movbsmb2,*vd638
incdvd638
xorwsmw1,ac0
decwac2
network2
ldw=ac2,16#0000
movwac0,vw300
network3
ldsm0.0
dtch8
atchint_6,10
interrupt4//發(fā)送信息碼