手动产生一个cam

一个 cam 可以通过不使用 cam 编辑器的方式在IEC程序中产生。

示例

声明:

VAR    
i: INT;
CAM: MC_CAM_REF := (
    byType:=2, (* non-equidistant *)
    byVarType:=2, (* UINT *)
    nElements:=128,
    xStart:=0,
    xEnd:=360);
Table: SMC_CAMTable_UINT_128_2 := (
    fEditorMasterMin := 0, fEditorMasterMax := 360,
    fTableMasterMin := 0, fTableMasterMax := 6000,
    fEditorSlaveMin := 0, fEditorSlaveMax := 360,
    fTableSlaveMin := 0, fTableSlaveMax := 6000);
END_VAR
 

执行部分:

(* Create cam (example of a line); unique *)
FOR i:=0 TO 127 DO
    Table.Table[i][0]:=Table.Table[i][1]:=REAL_TO_UINT(i / 127.0 * 6000);
END_FOR
(* Link pointer; must be done in every cycle!!! *)
CAM.pce := ADR(Table);
 

产生的cam可以被用作模块 MC_CamTableSelect的输入。反之,这个模块的输出可以用于 MC_CamIn。