关于冷轧薄板厂卷取机张力控制的
// Check TCON1 number
L 1
L #i_TCON1_No //外部输入 i_TCON1_No = 1
>I // TCON1 number > 0
JC ERR
L 15
<=I // TCON1 number < 16
JC P_OK
ERR: S #o_Error
BEC // Abort execution of function block
P_OK: R #o_Error
L #i_TCON1_No // TCON1 tension controller number
+ -1 // - 1
L 30
*I // *30 (30 bytes per TCON1 tension controller)
+ 100 // +100: Start address in data block (DBB100 = first byte with data for TCON1's)
SLW 3 // Creation of a pointer address P#Byte.Bit
T #t_Start_Address_MRG // Start address pointer in data block of TCON1 data
// Retrieve status word 1 & 2 最主要是想看懂这一段,状态字的位跟程序对应不起来
L P##t_TCON1_STSW // Load start address of local variable
T #t_Pointer // Transfer address in t_Pointer
OPN #i_DB_Comm_MRG_LCO 外部输入#i_DB_Comm_MRG_LCO=DB161
L DBD [#t_Start_Address_MRG]
T LD [#t_Pointer] // Transfer status word 1 & 2 to local variables (Structure)
L #t_Start_Address_MRG
L P#4.0
+D
LAR1
// Retrieve TCON1 status information 这一段我能看懂,传数据
L DBD [AR1,P#0.0]
T #s_MRG_Act_Tens_Setp // Load actual tension setpoint for TCON1 controller [N]
L DBD [AR1,P#4.0]
T #s_MRG_Act_Tens_Value // Load actual tension value TCON1 controller [N]
L DBD [AR1,P#8.0]
T #s_MRG_VL_Tech // Load VL_Tech given to drives by TCON1 controller [m/s]
L DBD [AR1,P#12.0]
T #s_MRG_T_Tech // Load T_Tech (force) applied by TCON1 controller [N]
// Retrieve (previous) control word 1 & 2
L P##t_TCON1_CTLW // Load start address of local variable
T #t_Pointer // Transfer address in t_Pointer
OPN #i_DB_Comm_LCO_MRG 外部输入#i_DB_Comm_LCO_MRG=DB160
L DBD [#t_Start_Address_MRG]
T LD [#t_Pointer] // Transfer control word 1 & 2 to local variables (Structure)
变量表监视的
DB161.DBW100 TCON1 CONTR1:Status word1 HEX W#16#A310
DB161.DBW102 TCON1 CONTR2:Status word1 HEX W#16#0000
FB1741调用的FB926 如图片 调用
FB926 内的临时变量 t_TCON1_STSW每个位含义如图 变量
A310转成2进制是 1010 0101 0001 0000如何对应FB926中临时变量 t_TCON1_STSW的每一位。
当时正在卷取, TensOK肯定是1的,StripBrk肯定是0的。
一直对应不上,求助。
问题补充:
多谢老师学长的解答,状态字的传输我看懂了。
当卷取时DBW100=A310, DBW102=0000 十六进制
就是DBD100=1010,0101,0001,0000,0000,0000,0000,0000.
t_TCON1_STSW所有位如图:变量
TensOK,StripBrk,分别对应哪个位,当时TensOK肯定是1的,StripBrk肯定是0的
图片说明:
最佳答案
当i_TCON1_No为1时,#t_Start_Address_MRG为P#100.0.
你说的这部分就是把DBD100的内容传送给#t_TCON1_STSW 。
补充:这相当于把DBD100传送给#t_TCON1_STSW,假设#t_TCON1_STSW的地址是LD10,就是DBB100传给LB10,DBB101传给LB11,DBB102传给LB12,DBB103传给LB13。你声明变量表中的0.0--0.7对应LB10的内容,1.0--1.7对应LB11的内容,2.0--2.7对应LB12的内容,3.0--3.7对应LB13的内容。这和你写的最终状态是一致的。
提问者对于答案的评价:
谢谢
专家置评
已阅,最佳答案正确。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc231285.html