设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子MODBUS TCP通讯(下)
返回列表
发新帖
[西门子]
西门子MODBUS TCP通讯(下)
[复制链接]
86131
|
0
|
2024-3-11 07:49:26
|
显示全部楼层
|
阅读模式
一、配方写入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
"1_MODBUS TCP数据".MC2.MB_DATA_PTR[4] := "1秤_配方数据块".落差值;
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块都用更改,很玛法)。
以上知识是个人在书本学习或在实践中学习到的,为了后续查找,故此在公众号分享。喜欢此类知识分享的朋友可以关注,谢谢。
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
LIUSHOUCUN
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』