一个 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。