求西门子300PLC模拟量输入实例程序

西门子plc 发布于 1年前 分类:S7-300/400

急求一个模拟量输入实例!简单的就可以!急求!

3个回复

  • plc学习
    plc学习

    你的问题也太简单了。
    你的意思是否把模拟量的数据读取并转换成你需要的数据呢?
    举个例子,比如你模拟量4-20ma,对应0-100公斤
    CALL  "SCALE"
    IN     :=PIW256                        //你的模拟采集地址
    HI_LIM :=1.000000e+002    //上限对应100kg
    LO_LIM :=0.000000e+000   //下限对应0kg
    BIPOLAR:=FALSE                 //这个为false,
    RET_VAL:=MW20                  //返回值,主要看有没有错误
    OUT    :=MD30                        //你转换后的输出值,实际公斤

    fc105"SCALE"是siemens的标准块,位置在Step7的库(Libraries)->Standard Libraries ->TI-S7 converting Blocks -> FC105

    另外比如piw256接的是热电偶(温度),则可以
    L piw256
    L 10
    /I
    T MW60   //你的实际温度值,和采集的数据是除以10的关系.

  • plc电工爱好者
    plc电工爱好者

    1、FC105
    SCALE功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限和上限(LO_LIM和HI_LIM)之间的实型值。将结果写入OUT。SCALE功能使用以下等式:

    OUT = [ ((FLOAT (IN) -K1)/(K2-1)) * (HI_LIM-O_LIM)] + LO_LIM

    常数K1和K2根据输入值是BIPOLAR还是UNIPOLAR设置。

    BIPOLAR:假定输入整型值介于 7648与27648之间,因此K1 = -7648.0,K2 = +27648.0

    UNIPOLAR:假定输入整型值介于0和27648之间,因此K1 = 0.0,K2 = +27648.0

    如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。

    通过设置LO_LIM > HI_LIM可获得反向标定。使用反向转换时,输出值将随输入值的增加而减小。

    FC105参数

    参数      说明      数据类型      存储区      描述
    EN      输入      BOOL      I、Q、M、D、L      使能输入端,信号状态为1时激活该功能。
    ENO      输出      BOOL      I、Q、M、D、L      如果该功能的执行无错误,该使能输出端信号状态为1。
    IN      输入      INT      I、Q、M、D、L、P、常数      欲转换为以工程单位表示的实型值的输入值。
    HI_LIM      输入      REAL      I、Q、M、D、L、P、常数      以工程单位表示的上限值。
    LO_LIM      输入      REAL      I、Q、M、D、L、P、常数      以工程单位表示的下限值。
    BIPOLAR      输入      BOOL      I、Q、M、D、L      信号状态为1表示输入值为双极性。信号状态0表示输入值为单极性。
    OUT      输出      REAL      I、Q、M、D、L、P      转换的结果。
    RET_VAL      输出      WORD      I、Q、M、D、L、P      如果该指令的执行没有错误,将返回值W#16#0000。对于W#16#0000以外的其它值,参见"错误信息"。
    错误信息

    如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。ENO的信号状态将设置为0,RET_VAL等于W#16#0008。

  • plc电工爱好者
    plc电工爱好者

    大家要注意在axg2008关于热电阻的处理描述中存在一个问题,向他说得那样操作,在MW60里你只能得到商,余数在ACCU1-H内。所以最好是先将模拟量输入转化为实数再进行实数运算。