西門子電源模塊6SL3130-7TE23-6AA3現貨供應
plc內部特殊存儲器位smb30和smb130分別配置通訊端口0和1,為自由端口通訊選擇波特率、奇偶校驗和數據位數。自由端口的控制字節描述如下所示
例如:在通訊協議中規定奇偶校驗為奇校驗、每個字符的數據為8位、波特率為19200、自由口協議,采用通訊端口0,則在plc初始化程序中將smb30賦值為0c5h。
例://串口初始化
…
network7
ldsm0.0
movb16#c5,smb30//波特率為19200奇校驗//1起始位1停止位8數據位
eni//允許中斷
movb2,smb34
movb20,smb35
atchint_0,8
…
5、PLC實時數據處理
由于s7-200系列plc在自由口模式下,通訊協議由梯形圖程序或stl編輯器控制,程序可以使用接收中斷、發送中斷、發送指令和接收指令來控制通訊操作。cpu連續掃描用戶程序,執行用戶任務。plc在程序執行過程中,基于穩定、快速靈活等方面考慮,cpu每個掃描周期都通過輸入輸出映像寄存器來執行實際輸入輸出操作,即讀實際輸入點值到映像寄存器、寫映像寄存器值到實際輸出點。由于在中斷中不能順利進行數據讀寫操作,因此,可通過編程,利用plc循環掃描執行程序的特點,使得在程序掃描期間實現數據存儲區與輸入輸出映像寄存器區交換數據。
在本實例中,plc上電初始化后轉入接收字符中斷,當上位機發出查詢命令后,plc判斷所發命令的地址和地址補碼是否正確;如果正確判斷上位機是向plc發送命令還是查詢plc狀態;如果執行命令則plc轉入主程序執行相關命令,如果查詢plc狀態則將協議定義的信息發送給上位機,上位機收到信息后發送應答幀給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//發送信息
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//接收應答字節
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//發送信息碼