发表于:2019/11/17 19:00:49
#0楼
此贴内容来自<120例> 1.4.1章节
此功能块为自定义功能块,需要手动添加此库文件至somachine软件及程序的库管理器中.
安装modbusmastermanager库文件.
点击"工具"菜单下的"库管理".在弹出的对话框中,点击"安装"后选择库文件所在的目录文件夹
选择对应的库文件并点击"打开".库文件就会被安装,如图
在库管理器中导入库功能块.如下图
点击"库管理器"在窗口中选择"添加库.
选择对应的库文件,点击OK 该功能块被导入至库管理器中.
功能块各管脚定义如下
输入:
i_xEN_FB:开关量,使能功能块;
i_xStart:开关量,启动通讯;
i_xholdonerror:开关量,通讯错误是是否保持上一次的值,off:不保持;on:保持;
i_enetworktype:整数,网络类型,ETH:以太网;sl1:串口1;sl2:串口2;sl3:串口3;
i_snodeaddress:字符串,节点地址,以太网IP地址或串口的节点地址;
i_iportnumber:整数.端口号,modbus TCP通讯时设置为502;
i_itimeout:整数,超时时间,单位:100ms;
i_icycletime:整数,读取或写入的循环时间,单位:1ms;
i_ereadobjecttype:整数,读取的数据类型,MW.I.Q.IW;
i_direadfirstobject:双整数,读取的第一个寄存器地址;
i_ireadquantity:整数,读取寄存器的数量;
i_ewriteobjectcype:整数,写入的数据类型,MW.I.Q.IW;
i_diwritefirstobject:双整数,写入的第一个寄存器地址;
i_iwritequantity:整数,写入寄存器的数量;
i_wbuffertoread:数组,读取寄存器缓冲区;
i_wbuffertowrite:数组,写入寄存器缓冲区;
输出
q_xeno_fb:开关量,功能块已使能;
q_xrunning:开关量,运行中;
q_xreaderror:开关量,读取错误;
q_dwreadcommerrorid:双整数,读取通讯错误代码;
q_dwreadopererrorid:双整数,读取操作错误代码;
q_xwriteerror:开关量,写入错误;
q_dwwritecommerrorid:双整数,写入通讯错误代码;
q_dwwriteopererrorid:双整数,写入操作错误代码;
读取数据参数见下表
读取寄存器地址时的个数范围为1~125,读取位地址时的数量范围为1~2000.
写入数据参数见下表
写入寄存器地址时的个数范围为1~123,读取位地址时的数量范围为1~1968.与写入不同.
如果读写的数量超过这个范围,可以使用两个功能块进行读写,
使用串口通讯时只能1对1通信.
使用工业以太网通讯时可以是1对多,最多可与8台从站进行通讯.
网线断线回复后可自动回复通信.
被通讯占用的数组如果连接了物理地址,那么该物理地址不要再连接任何变量.
否则.plc上电后会进入停止状态.
通过监视%mw60014与%mw60015系统字获得的信息见下表.
本章节实例程序:
此功能块为自定义功能块,需要手动添加此库文件至somachine软件及程序的库管理器中.
安装modbusmastermanager库文件.
点击"工具"菜单下的"库管理".在弹出的对话框中,点击"安装"后选择库文件所在的目录文件夹
选择对应的库文件并点击"打开".库文件就会被安装,如图
在库管理器中导入库功能块.如下图
点击"库管理器"在窗口中选择"添加库.
选择对应的库文件,点击OK 该功能块被导入至库管理器中.
功能块各管脚定义如下
输入:
i_xEN_FB:开关量,使能功能块;
i_xStart:开关量,启动通讯;
i_xholdonerror:开关量,通讯错误是是否保持上一次的值,off:不保持;on:保持;
i_enetworktype:整数,网络类型,ETH:以太网;sl1:串口1;sl2:串口2;sl3:串口3;
i_snodeaddress:字符串,节点地址,以太网IP地址或串口的节点地址;
i_iportnumber:整数.端口号,modbus TCP通讯时设置为502;
i_itimeout:整数,超时时间,单位:100ms;
i_icycletime:整数,读取或写入的循环时间,单位:1ms;
i_ereadobjecttype:整数,读取的数据类型,MW.I.Q.IW;
i_direadfirstobject:双整数,读取的第一个寄存器地址;
i_ireadquantity:整数,读取寄存器的数量;
i_ewriteobjectcype:整数,写入的数据类型,MW.I.Q.IW;
i_diwritefirstobject:双整数,写入的第一个寄存器地址;
i_iwritequantity:整数,写入寄存器的数量;
i_wbuffertoread:数组,读取寄存器缓冲区;
i_wbuffertowrite:数组,写入寄存器缓冲区;
输出
q_xeno_fb:开关量,功能块已使能;
q_xrunning:开关量,运行中;
q_xreaderror:开关量,读取错误;
q_dwreadcommerrorid:双整数,读取通讯错误代码;
q_dwreadopererrorid:双整数,读取操作错误代码;
q_xwriteerror:开关量,写入错误;
q_dwwritecommerrorid:双整数,写入通讯错误代码;
q_dwwriteopererrorid:双整数,写入操作错误代码;
读取数据参数见下表
读取寄存器地址时的个数范围为1~125,读取位地址时的数量范围为1~2000.
写入数据参数见下表
写入寄存器地址时的个数范围为1~123,读取位地址时的数量范围为1~1968.与写入不同.
如果读写的数量超过这个范围,可以使用两个功能块进行读写,
使用串口通讯时只能1对1通信.
使用工业以太网通讯时可以是1对多,最多可与8台从站进行通讯.
网线断线回复后可自动回复通信.
被通讯占用的数组如果连接了物理地址,那么该物理地址不要再连接任何变量.
否则.plc上电后会进入停止状态.
通过监视%mw60014与%mw60015系统字获得的信息见下表.
本章节实例程序:
附件:
[本地下载]水平一般,能力有限.如有错误之处.欢迎并感谢指出.我一定认真学习积极改正.请勿DISS.