⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acmotor.ls

📁 该程序是ST7MC驱动三洋压缩机(交流)
💻 LS
📖 第 1 页 / 共 3 页
字号:
1286  0326 cd0000        	call	c_lcmp
1288  0329 2a10          	jrpl	L144
1289                     ; 416 			VoltageIntegralTerm = S32_MAX;	// Avoid IntTerm Overflow
1291  032b a6ff          	ld	a,#255
1292  032d c70014        	ld	L7_VoltageIntegralTerm+3,a
1293  0330 c70013        	ld	L7_VoltageIntegralTerm+2,a
1294  0333 c70012        	ld	L7_VoltageIntegralTerm+1,a
1295  0336 a67f          	ld	a,#127
1296  0338 c70011        	ld	L7_VoltageIntegralTerm,a
1297  033b               L144:
1298                     ; 419 		if ( ( DeltaVoltage_slip < 0 ) &&  ( VoltageIntegralTerm > PreviousVoltageIntegral ) )
1300  033b c6000c        	ld	a,L31_DeltaVoltage_slip
1301  033e 2a1f          	jrpl	L344
1303  0340 aef9          	ld	x,#_ACM_SlipRegulation$L-7
1304  0342 cd0000        	call	c_ltor
1306  0345 ae11          	ld	x,#high(L7_VoltageIntegralTerm)
1307  0347 bf00          	ld	c_x,x
1308  0349 ae11          	ld	x,#low(L7_VoltageIntegralTerm)
1309  034b cd0000        	call	c_xlcmp
1311  034e 2a0f          	jrpl	L344
1312                     ; 421 			VoltageIntegralTerm = S32_MIN;	// Avoid IntTerm Underflow
1314  0350 4f            	clr	a
1315  0351 c70014        	ld	L7_VoltageIntegralTerm+3,a
1316  0354 c70013        	ld	L7_VoltageIntegralTerm+2,a
1317  0357 c70012        	ld	L7_VoltageIntegralTerm+1,a
1318  035a a680          	ld	a,#128
1319  035c c70011        	ld	L7_VoltageIntegralTerm,a
1320  035f               L344:
1321                     ; 425 	NewVoltage += (s16)( VoltageIntegralTerm / 256 ); /* Sum "proportional" and "integral" terms */
1323  035f ae11          	ld	x,#high(L7_VoltageIntegralTerm)
1324  0361 bf00          	ld	c_x,x
1325  0363 ae11          	ld	x,#low(L7_VoltageIntegralTerm)
1326  0365 cd0000        	call	c_xltor
1328  0368 ae04          	ld	x,#high(L43)
1329  036a bf00          	ld	c_x,x
1330  036c ae04          	ld	x,#low(L43)
1331  036e cd0000        	call	c_xldiv
1333  0371 b603          	ld	a,c_lreg+3
1334  0373 be02          	ld	x,c_lreg+2
1335  0375 b7f8          	ld	_ACM_SlipRegulation$L-8,a
1336  0377 bff7          	ld	_ACM_SlipRegulation$L-9,x
1337  0379 b6ff          	ld	a,_ACM_SlipRegulation$L-1
1338  037b bbf8          	add	a,_ACM_SlipRegulation$L-8
1339  037d b7ff          	ld	_ACM_SlipRegulation$L-1,a
1340  037f b6fe          	ld	a,_ACM_SlipRegulation$L-2
1341  0381 b9f7          	adc	a,_ACM_SlipRegulation$L-9
1342  0383 b7fe          	ld	_ACM_SlipRegulation$L-2,a
1343                     ; 427 	if ( NewVoltage < 0 )
1345  0385 2a09          	jrpl	L544
1346                     ; 429 		Voltage = 0;
1348  0387 3ffd          	clr	_ACM_SlipRegulation$L-3
1349                     ; 430 		MinPiOut = TRUE;
1351  0389 a601          	ld	a,#1
1352  038b c70001        	ld	L32_MinPiOut,a
1354  038e 2023          	jra	L744
1355  0390               L544:
1356                     ; 436 		MaxVoltage = ACM_VoltageMaxAllowed( MTC_GetStatorFreq() );
1358  0390 cd0000        	call	_MTC_GetStatorFreq
1360  0393 cd000e        	call	_ACM_VoltageMaxAllowed
1362  0396 b7fc          	ld	_ACM_SlipRegulation$L-4,a
1363                     ; 437 		if ( NewVoltage > (s16)MaxVoltage )
1365  0398 5f            	clr	x
1366  0399 b0ff          	sub	a,_ACM_SlipRegulation$L-1
1367  039b 4f            	clr	a
1368  039c b2fe          	sbc	a,_ACM_SlipRegulation$L-2
1369  039e 2a08          	jrpl	L154
1370                     ; 439 			Voltage = MaxVoltage;
1372  03a0 b6fc          	ld	a,_ACM_SlipRegulation$L-4
1373  03a2 b7fd          	ld	_ACM_SlipRegulation$L-3,a
1374                     ; 440 			MaxPiOut = TRUE;  /* Set ClampFlag if modulation reaches maximum value */
1376  03a4 a601          	ld	a,#1
1378  03a6 2008          	jp	LC001
1379  03a8               L154:
1380                     ; 444 			Voltage = (u8)NewVoltage;
1382  03a8 b6ff          	ld	a,_ACM_SlipRegulation$L-1
1383  03aa b7fd          	ld	_ACM_SlipRegulation$L-3,a
1384                     ; 445 			MinPiOut = FALSE;
1386  03ac 4f            	clr	a
1387  03ad c70001        	ld	L32_MinPiOut,a
1388                     ; 446 			MaxPiOut = FALSE;
1390  03b0               LC001:
1391  03b0 c70000        	ld	L52_MaxPiOut,a
1392  03b3               L744:
1393                     ; 450 	return (Voltage);
1395  03b3 b6fd          	ld	a,_ACM_SlipRegulation$L-3
1398  03b5 81            	ret	
1449                     ; 470 u8 ACM_GetOptimumSlip(u16 StatorFrequency)
1449                     ; 471 {
1450                     	switch	.text
1452                     	xref.b	_ACM_GetOptimumSlip$L
1453  03b6               _ACM_GetOptimumSlip:
1455  03b6 b701          	ld	_ACM_GetOptimumSlip$L+1,a
1456  03b8 bf00          	ld	_ACM_GetOptimumSlip$L,x
1458                     ; 474   if ( StatorFrequency <= OPT_SLIP_LOWFREQ_LIMIT )
1460  03ba a0d1          	sub	a,#209
1461  03bc 9f            	ld	a,x
1462  03bd a207          	sbc	a,#7
1463  03bf 2403          	jruge	L305
1464                     ; 476        OptimumSlip = OPT_SLIP_LOWFREQ;
1466  03c1 a61e          	ld	a,#30
1469  03c3 81            	ret	
1470  03c4               L305:
1471                     ; 478   } else if ( StatorFrequency >= OPT_SLIP_HIGHFREQ_LIMIT )
1473  03c4 b601          	ld	a,_ACM_GetOptimumSlip$L+1
1474  03c6 a0c4          	sub	a,#196
1475  03c8 b600          	ld	a,_ACM_GetOptimumSlip$L
1476  03ca a209          	sbc	a,#9
1477  03cc 2503          	jrult	L705
1478                     ; 480               OptimumSlip = OPT_SLIP_HIGHFREQ;
1480  03ce a650          	ld	a,#80
1483  03d0 81            	ret	
1484  03d1               L705:
1485                     ; 484                    Buffer = StatorFrequency * SLIP_COEFF - SLIP_OFFSET;
1487  03d1 b601          	ld	a,_ACM_GetOptimumSlip$L+1
1488  03d3 3f00          	clr	c_y
1489  03d5 90ae19        	ld	y,#25
1490  03d8 cd0000        	call	c_imul
1492  03db a050          	sub	a,#80
1493  03dd 88            	push	a
1494  03de 9f            	ld	a,x
1495  03df a2c3          	sbc	a,#195
1496  03e1 b7fd          	ld	_ACM_GetOptimumSlip$L-3,a
1497  03e3 84            	pop	a
1498                     ; 485                    OptimumSlip = (u8)(OPT_SLIP_LOWFREQ + (u8) (Buffer / 256));
1500  03e4 b6fd          	ld	a,_ACM_GetOptimumSlip$L-3
1501  03e6 ab1e          	add	a,#30
1502                     ; 488   return ( OptimumSlip );
1506  03e8 81            	ret	
1550                     ; 500 void ACM_GetPIParam(u16 StatorFrequency)
1550                     ; 501 {
1551                     	switch	.text
1553                     	xref.b	_ACM_GetPIParam$L
1554  03e9               _ACM_GetPIParam:
1556  03e9 b701          	ld	_ACM_GetPIParam$L+1,a
1557  03eb bf00          	ld	_ACM_GetPIParam$L,x
1559                     ; 503 	if ( StatorFrequency <= PI_LOWFREQ_LIMIT )
1561  03ed a0f5          	sub	a,#245
1562  03ef 9f            	ld	a,x
1563  03f0 a201          	sbc	a,#1
1564  03f2 2409          	jruge	L535
1565                     ; 505 	     Kp = PI_PROP_LOWSPD;
1567  03f4 a605          	ld	a,#5
1568  03f6 c70016        	ld	L3_Kp,a
1569                     ; 506 	     Ki = PI_INT_LOWSPD;	
1571  03f9 a632          	ld	a,#50
1573  03fb 203f          	jra	L735
1574  03fd               L535:
1575                     ; 509 	else if ( StatorFrequency >= PI_HIGHFREQ_LIMIT )
1577  03fd b601          	ld	a,_ACM_GetPIParam$L+1
1578  03ff a020          	sub	a,#32
1579  0401 b600          	ld	a,_ACM_GetPIParam$L
1580  0403 a203          	sbc	a,#3
1581  0405 2508          	jrult	L145
1582                     ; 511 	     Kp = PI_PROP_HIGHSPD;
1584  0407 4f            	clr	a
1585  0408 c70016        	ld	L3_Kp,a
1586                     ; 512 	     Ki = PI_INT_HIGHSPD;	
1588  040b a63c          	ld	a,#60
1590  040d 202d          	jra	L735
1591  040f               L145:
1592                     ; 518 		Buffer = StatorFrequency * PI_PROP_COEFF - PI_PROP_OFFSET;
1594  040f b601          	ld	a,_ACM_GetPIParam$L+1
1595  0411 48            	sll	a
1596  0412 59            	rlc	x
1597  0413 48            	sll	a
1598  0414 59            	rlc	x
1599  0415 a0d0          	sub	a,#208
1600  0417 88            	push	a
1601  0418 9f            	ld	a,x
1602  0419 a207          	sbc	a,#7
1603  041b b7fe          	ld	_ACM_GetPIParam$L-2,a
1604  041d 84            	pop	a
1605                     ; 519 		Kp = (u8)(PI_PROP_LOWSPD - (u8) (Buffer / 256));
1607  041e a605          	ld	a,#5
1608  0420 b0fe          	sub	a,_ACM_GetPIParam$L-2
1609  0422 c70016        	ld	L3_Kp,a
1610                     ; 520 		Buffer = StatorFrequency * PI_INT_COEFF - PI_INT_OFFSET;
1612  0425 b601          	ld	a,_ACM_GetPIParam$L+1
1613  0427 be00          	ld	x,_ACM_GetPIParam$L
1614  0429 48            	sll	a
1615  042a 59            	rlc	x
1616  042b 48            	sll	a
1617  042c 59            	rlc	x
1618  042d 48            	sll	a
1619  042e 59            	rlc	x
1620  042f a0a0          	sub	a,#160
1621  0431 88            	push	a
1622  0432 9f            	ld	a,x
1623  0433 a20f          	sbc	a,#15
1624  0435 b7fe          	ld	_ACM_GetPIParam$L-2,a
1625  0437 84            	pop	a
1626                     ; 521 		Ki = (u8)(PI_INT_LOWSPD + (u8) (Buffer / 256));
1628  0438 b6fe          	ld	a,_ACM_GetPIParam$L-2
1629  043a ab32          	add	a,#50
1630  043c               L735:
1631  043c c70015        	ld	L5_Ki,a
1632                     ; 524 }
1635  043f 81            	ret	
1741                     	switch	.bss
1742  0000               L52_MaxPiOut:
1743  0000 00            	ds.b	1
1744  0001               L32_MinPiOut:
1745  0001 00            	ds.b	1
1746  0002               L12_Voltage_slip_s32:
1747  0002 00000000      	ds.b	4
1748  0006               L71_DeltaVoltage_slip_s32:
1749  0006 00000000      	ds.b	4
1750  000a               L51_Voltage_slip:
1751  000a 0000          	ds.b	2
1752  000c               L31_DeltaVoltage_slip:
1753  000c 00000000      	ds.b	4
1754  0010               L11_Error_slip:
1755  0010 00            	ds.b	1
1756  0011               L7_VoltageIntegralTerm:
1757  0011 00000000      	ds.b	4
1758  0015               L5_Ki:
1759  0015 00            	ds.b	1
1760  0016               L3_Kp:
1761  0016 00            	ds.b	1
1762                     	xref	_ART_Is_TimeInMsElapsed
1763                     	xref	_ART_Set_TimeInMs
1764                     	xref	_ART_IsRegPeriodElapsed
1765                     	xref	_ART_SetSpeedRegPeriod
1766                     	xref	_ART_IsSequenceCompleted
1767                     	xref	_ART_SetSequenceDuration
1768                     	xdef	_ACM_GetOptimumSlip
1769                     	xdef	_ACM_GetPIParam
1770                     	xdef	_ACM_SlipRegulation
1771                     	xdef	_ACM_InitSlipFreqReg
1772                     	xdef	_ACM_SustainSpeed
1773                     	xdef	_ACM_SoftStartOL
1774                     	xdef	_ACM_SoftStart
1775                     	xdef	_ACM_InitSoftStart_OL
1776                     	xdef	_ACM_InitSoftStart
1777                     	xdef	_ACM_VoltageMaxAllowed
1778                     	xdef	_ACM_Init
1779                     	xref	_MTC_DisableMCOutputs
1780                     	xref	_MTC_EnableMCOutputs
1781                     	xref	_MTC_Set_ClockWise_Direction
1782                     	xref	_MTC_StartTachoFiltering
1783                     	xref	_MTC_InitTachoMeasure
1784                     	xref	_MTC_ValidSpeedInfo
1785                     	xref	_MTC_GetSlip
1786                     	xref	_MTC_GetVoltage
1787                     	xref	_MTC_GetStatorFreq
1788                     	xref	_MTC_UpdateSine
1789                     	xref	_MTC_InitSineGen
1790                     	xref	_MTC_InitPeripheral
1791                     	xref.b	c_lreg
1792                     	xref.b	c_x
1793                     	xref.b	c_y
1813                     	xref	c_xlcmp
1814                     	xref	c_ltor
1815                     	xref	c_lcmp
1816                     	xref	c_xlgadd
1817                     	xref	c_lsub
1818                     	xref	c_itol
1819                     	xref	c_xldiv
1820                     	xref	c_xltor
1821                     	xref	c_rtoxl
1822                     	xref	c_lmul
1823                     	xref	c_rtol
1824                     	xref	c_llsh
1825                     	xref	c_udiv
1826                     	xref	c_imul
1827                     	xref.b	_MTC_UpdateSine$L
1828                     	end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -