欢迎访问刘师衡器维修、采购网!

皮带秤梯形图程序,设计皮带运料系统的PLC控制程序

分享 时间: 电子地磅 皮带秤 防爆秤

全国地磅电子秤销售、维修电话158-8101-1465

全国发货,地磅秤、电子秤,有需要的朋友可以直接联系上面电话哦,微同号
推荐度:
刘师傅老技术员

皮带秤梯形图程序目录

皮带秤梯形图程序

设计皮带运料系统的PLC控制程序

皮带秤的瞬时流量和累计重量怎么在AB PLC中编程?用CPT指令可以吗?

S7-200的皮带秤程序,皮带开启时种序里的数据正负正负的变,不能保持正值,如1233.35 -750 1346.25 -750

皮带秤梯形图程序

    皮带秤的梯形图程序可以用于控制和调整皮带秤的运行。下面是一个简单的皮带秤梯形图程序的示例:

    ```c

    #include u003cstdio.hu003e

    // 定义皮带秤的相关参数

    #define BELT_LENGTH 10.0 // 皮带长度(单位:米)

    #define BELT_SPEED 1.0 // 皮带速度(单位:米/秒)

    #define TARGET_LOAD 50.0 // 目标负载(单位:千克/秒)

    // 定义梯形图中的时间间隔和增益系数

    #define TIME_INTERVAL 0.1 // 时间间隔(单位:秒)

    #define GAIN_MOTOR 1.0 // 电动机增益系数

    #define GAIN_SENSOR 0.5 // 传感器增益系数

    // 定义变量

    double current_load = 0.0; // 当前负载(单位:千克)

    double target_load = TARGET_LOAD; // 目标负载(单位:千克/秒)

    double belt_speed = BELT_SPEED; // 皮带速度(单位:米/秒)

    double belt_length = BELT_LENGTH; // 皮带长度(单位:米)

    // 主函数

    int main() {

     double delta_time = TIME_INTERVAL; // 时间增量(单位:秒)

     double motor_power = 0.0; // 电动机功率(单位:瓦)

     double sensor_signal = 0.0; // 传感器信号(单位:电压或电流)

     double motor_control_signal = 0.0; // 电动机控制信号(单位:电压或电流)

     double belt_motor_current = 0.0; // 电动机电流(单位:安培)

     double belt_motor_voltage = 0.0; // 电动机电压(单位:伏特)

     double belt_motor_resistance = 0.0; // 电动机电阻(单位:欧姆)

     double belt_motor_power = 0.0; // 电动机功率(单位:瓦)

     double belt_motor_efficiency = 0.0; // 电动机效率(无单位)

     double belt_motor_rpm = 0.0; // 电动机转速(单位:转/分钟)

     double belt_motor_torque = 0.0; // 电动机扭矩(单位:牛顿米)

     double sensor_signal_offset = 0.0; // 传感器信号偏置(单位:电压或电流)

     double iir_filter_coeff = 0.95; // IIR滤波器系数

     double previous_sensor_signal = sensor_signal; // 上一个传感器信号值

     int loop_count = 0; // 控制循环计数器

     int normal_operation = 1; // 正常操作标志,1表示正常,0表示异常

     int stop_flag = 0; // 停止标志,1表示停止,0表示继续

     int encoder_count = 0; // 编码器计数器,用于测量皮带位移

     double encoder_count_prev = encoder_count; // 上一个编码器计数器值

     double belt_displacement = 0.0; // 皮带位移(单位:米)

     double load_adjustment = 0.0; // 负载调整值(单位:千克/秒)

     double current_load_prev = current_load; // 上一个当前负载值

     double power_adjustment = 0.0; // 电功率调整值(单位:瓦)

     double motor_control_signal_prev = motor_control_signal; // 上一个电动机控制信号值

     double rpm_adjustment = 0.0; // 电动机转速调整值(单位:转/分钟)

     double previous_rpm = belt_motor_rpm; // 上一个电动机转速值

     while (normal_operation) { // 控制循环,直到异常情况发生或停止标志置位

     loop_count++; // 控制循环计数器加1

     if (loop_count u003e= int(60 / TIME_INTERVAL)) { // 每秒钟至少执行一次循环

     loop_count = 0; // 重置控制循环计数器

     encoder_count++; // 编码器计数器加1,用于测量皮带位移

     if (encoder_count u003e= int(belt_length / BELT_SPEED /TIME_INTERVAL)) {

     encoder_count = 0; // 重置编码器计数器

     belt_displacement = encoder_count BELT_SPEED TIME_INTERVAL; // 计算皮带位移

     load_adjustment = belt_displacement belt_length / (BELT_SPEED TIME_INTERVAL); // 计算负载调整值

     current_load = previous_load + load_adjustment; // 更新当前负载值

     }

     }

     // 读取传感器信号

     sensor_signal = read_sensor();

     // 计算传感器信号偏置

     sensor_signal_offset = iir_filter_coeff (sensor_signal - previous_sensor_signal) + (1 - iir_filter_coeff) sensor_signal_offset;

     // 计算电动机控制信号

     motor_control_signal = motor_control(motor_power, sensor_signal, sensor_signal_offset);

     // 计算电动机电流和电压

     belt_motor_current = motor_control_signal / belt_motor_resistance;

     belt_motor_voltage = belt_motor_current belt_motor_resistance;

     // 计算电动机功率和效率

     belt_motor_power = belt_motor_voltage belt_motor_current;

     belt_motor_efficiency = belt_motor_power / motor_power;

     // 计算电动机转速和扭矩

     belt_motor_rpm = belt_motor_current (60 / pi); // RPM=p(i/n) [p=pole pair数, i=相数, n=电机的转速]

     belt_motor_torque = belt_motor_voltage / belt_motor_rpm;

     // 更新变量值

     previous_sensor_signal = sensor_signal;

     previous_load = current_load;

     previous_rpm = belt_motor_rpm;

     previous_motor_control_signal = motor_control_signal;

     }

     return 0; // 程序正常结束

    }

设计皮带运料系统的PLC控制程序

这是步进梯形图的一个典型应用例子,你可参照《三菱FX系统编程手册》,里面就有这样一个例子程序。

书不贵,在电子市场大概80-100元,这书将来工作中也非常有用(假如你使用三菱PLC的话)

皮带秤的瞬时流量和累计重量怎么在AB PLC中编程?用CPT指令可以吗?

CPT指令表达式执行表达式中定义的算术运算。

当指令被使能时,CPT指令表达式的数值并且存放结果于目的单元内。

与其他算术指令相比,CPT指令的运算速度稍慢而且占用更多的内存。

CPT指令的优点是它允许用户在一条指令内输入复杂的表达式

你当然可以定时调用这个指令来做

S7-200的皮带秤程序,皮带开启时种序里的数据正负正负的变,不能保持正值,如1233.35 -750 1346.25 -750

只是皮带开启时跳变还是一直跳变?

估计是干扰问题,将PLC可靠接地,并且尽量远离变频器等干扰源。

信号线选择屏蔽线,并且屏蔽层靠近PLC端接地。

如果还是没有改善,可以尝试将信号负通过一个8uF左右的电容接地。

221381