加入收藏 在线留言 联系我们
关注微信
手机扫一扫 立刻联系商家
全国服务热线18475208684

西门子授权代理-华南区西门子PLC-S7-1500 S7-400PLC 西门子s7 200 smart代理商

更新时间
2024-11-02 08:00:00
价格
请来电询价
PLC触摸屏代理商
西门子代理商
伺服电机驱动电缆
西门子一级代理商
变频器直流调速器
西门子一级总代理商
联系电话
13922889745
联系手机
18475208684
联系人
向小姐
立即询价

详细介绍
西门子MODBUS TCP通讯(下)

一、配方写入PLC

IF "1秤_配方使用".配方写入 = TRUE THEN

    "1_MODBUS TCP数据".MC1.MB_DATA_PTR[0] := "1秤_配方数据块".自动清零间隔;

    "1_MODBUS TCP数据".MC1.MB_DATA_PTR[1] := "1秤_配方数据块".运行判稳超时;

    "1_MODBUS TCP数据".MC1.MB_DATA_PTR[2] := "1秤_配方数据块".定值方式;

    "1_MODBUS TCP数据".MC2.MB_DATA_PTR[0] := "1秤_配方数据块".配方号;

    "1_MODBUS TCP数据".MC2.MB_DATA_PTR[1] := "1秤_配方数据块".目标值;

    "1_MODBUS TCP数据".MC2.MB_DATA_PTR[2] := "1秤_配方数据块".快加提前量;

    "1_MODBUS TCP数据".MC2.MB_DATA_PTR[3] := "1秤_配方数据块".中加提前量;

    "1_MODBUS TCP数据".MC2.MB_DATA_PTR[4] := "1秤_配方数据块".落差值;

    "1_MODBUS TCP数据".MC2.MB_DATA_PTR[5] := "1秤_配方数据块".零区值;

    "1_MODBUS TCP数据".MC3.MB_DATA_PTR[0] := "1秤_配方数据块".加料前延时;

    "1_MODBUS TCP数据".MC3.MB_DATA_PTR[1] := "1秤_配方数据块".快加禁判时间;

    "1_MODBUS TCP数据".MC3.MB_DATA_PTR[2] := "1秤_配方数据块".中加禁判时间;

    "1_MODBUS TCP数据".MC3.MB_DATA_PTR[3] := "1秤_配方数据块".慢加禁判时间;

    "1_MODBUS TCP数据".MC3.MB_DATA_PTR[4] := "1秤_配方数据块".定值保持时间;

    "1_MODBUS TCP数据".MC3.MB_DATA_PTR[5] := "1秤_配方数据块".夹袋后延时;

    "1_MODBUS TCP数据".MC3.MB_DATA_PTR[6] := "1秤_配方数据块".松袋前延时;

    "1_MODBUS TCP数据".MC3.MB_DATA_PTR[7] := "1秤_配方数据块".卸料延时;

    "1_MODBUS TCP数据".MC4.MB_DATA_PTR[0] := "1秤_配方数据块".加料关闭至慢加所需脉冲个数;

    "1_MODBUS TCP数据".MC5.MB_DATA_PTR[0] := "1秤_配方数据块".加料关闭至快加所需脉冲个数;

    "1_MODBUS TCP数据".MC6.MB_DATA_PTR[0] := "1秤_配方数据块".加料电机加速时间;

    "1_MODBUS TCP数据".MC6.MB_DATA_PTR[1] := "1秤_配方数据块".加料电机减速时间;

END_IF;


二、个别数据,点击写入数据时触发定时器,设定若干秒时间进行写入,平时更新该数据

"IEC_Timer_0_DB_130".TP(IN:="1秤_配方使用".配方写入,

                        PT:=#设定时间,

                        Q=>#脉冲输出,

                        ET=>#计时);

IF NOT "IEC_Timer_0_DB_130".Q THEN   

   "1_MODBUS TCP数据".MC2.MB_DATA_PTR[4] := "1_MODBUS TCP数据".MC8.MB_DATA_PTR[0];

ELSE

  END_IF;

三、配方根据配方号进行保存

IF "1秤_配方使用".配方保存 = TRUE AND "1秤_配方使用".配方号 = 1 THEN

    "1秤_配方1" := "1秤_配方数据块" ;

END_IF;

IF "1秤_配方使用".配方保存 = TRUE AND "1秤_配方使用".配方号 = 2 THEN

    "1秤_配方2" := "1秤_配方数据块" ;

END_IF;

IF "1秤_配方使用".配方保存 = TRUE AND "1秤_配方使用".配方号 = 3 THEN

    "1秤_配方3" := "1秤_配方数据块" ;

END_IF;

IF "1秤_配方使用".配方保存 = TRUE AND "1秤_配方使用".配方号 = 4 THEN

    "1秤_配方4" := "1秤_配方数据块" ;

END_IF;

IF "1秤_配方使用".配方保存 = TRUE AND "1秤_配方使用".配方号 = 5 THEN

    "1秤_配方5" := "1秤_配方数据块";

END_IF;

IF "1秤_配方使用".配方保存 = TRUE AND "1秤_配方使用".配方号 = 6 THEN

    "1秤_配方6" := "1秤_配方数据块" ;

END_IF;

IF "1秤_配方使用".配方保存 = TRUE AND "1秤_配方使用".配方号 = 7 THEN

    "1秤_配方7" := "1秤_配方数据块" ;

END_IF;

IF "1秤_配方使用".配方保存 = TRUE AND "1秤_配方使用".配方号 = 8 THEN

    "1秤_配方8" := "1秤_配方数据块" ;

END_IF;

IF "1秤_配方使用".配方保存 = TRUE AND "1秤_配方使用".配方号 = 9 THEN

    "1秤_配方9" := "1秤_配方数据块" ;

END_IF;

IF "1秤_配方使用".配方保存 = TRUE AND "1秤_配方使用".配方号 = 10 THEN

    "1秤_配方10" := "1秤_配方数据块" ;

END_IF;

四、配方根据配方号进行写入

IF "1秤_配方使用".配方读取 = TRUE AND "1秤_配方使用".配方号 = 1 THEN

    "1秤_配方数据块" := "1秤_配方1" ;

END_IF;

IF "1秤_配方使用".配方读取 = TRUE AND "1秤_配方使用".配方号 = 2 THEN

    "1秤_配方数据块" := "1秤_配方2" ;

END_IF;

IF "1秤_配方使用".配方读取 = TRUE AND "1秤_配方使用".配方号 = 3 THEN

    "1秤_配方数据块" := "1秤_配方3" ;

END_IF;

IF "1秤_配方使用".配方读取 = TRUE AND "1秤_配方使用".配方号 = 4 THEN

    "1秤_配方数据块" := "1秤_配方4" ;

END_IF;

IF "1秤_配方使用".配方读取 = TRUE AND "1秤_配方使用".配方号 = 5 THEN

    "1秤_配方数据块" := "1秤_配方5" ;

END_IF;

IF "1秤_配方使用".配方读取 = TRUE AND "1秤_配方使用".配方号 = 6 THEN

    "1秤_配方数据块" := "1秤_配方6";

END_IF;

IF "1秤_配方使用".配方读取 = TRUE AND "1秤_配方使用".配方号 = 7 THEN

    "1秤_配方数据块" := "1秤_配方7" ;

END_IF;

IF "1秤_配方使用".配方读取 = TRUE AND "1秤_配方使用".配方号 = 8 THEN

    "1秤_配方数据块" := "1秤_配方8" ;

END_IF;

IF "1秤_配方使用".配方读取 = TRUE AND "1秤_配方使用".配方号 = 9 THEN

    "1秤_配方数据块" := "1秤_配方9" ;

END_IF;

IF "1秤_配方使用".配方读取 = TRUE AND "1秤_配方使用".配方号 = 10 THEN

    "1秤_配方数据块" := "1秤_配方10" ;

END_IF;

写配方数据DB块时,注意数据格式及数据命名是一样的,相同的DB块数据类型,可以使用UDT数据类型(这个本人一开始每想到,简练的DB块都是复制粘贴,如果添加一个数据或减少一个数据,那么相关DB块都用更改,很玛法)。


相关产品

联系方式

  • 电  话:13922889745
  • 经理:向小姐
  • 手  机:18475208684
  • 微  信:18475208684