『7x24小时有问必答』
            因为考虑项目中批量对IO进行映射,因此建立的IO必须遵循方便使用For循环的定义,因此必须得使用数组。
            在IO定义的时候,不要直接进行IO的功能定义,而是对其信号的属性进行定义。因为传统硬件上一般是把8点、16点、32点开关量作为一个模块,一个模拟量模块通道不会超过8个,因此可以把16个同属性的开关量定义到一个模块中,8个同属性的模拟量定义到同一个模块中,具体如下:
ST_OnOffHard-以端口为基准的状态结构体
      xOpen      打开状态
      xShut      关闭状态
ST_OnOffSoft-以端口为基准的时间结构体
      fOpen      打开超时时长或统计时长;
      fShut      关闭超时时长或统计时长;
ST_DQStat-<font face="宋体">开关量输出端口统计信息结构体</font>
      此处用于统计开关量打开/关闭所用时长,与端口一一对应,项目中根据需要配置,主要为优化机械设计提供数据支撑,项目中可仅作为显示使用。

<b>ST_DQCode-开关量输出端口代码信息结构体
      此处结构体为开关量输出的代码信息,主要包含逻辑码Lcg和报警码Alm,其中逻辑码Lcg主要包含逻辑、报警、端口等信息,因此HMI上可以不链接原始的开关量输入/输出变量,只需根据逻辑码Lcg的位信息即可判断相关状态信息,报警码Alm依次为检测报警、逻辑报警、点动禁止操作报警、屏蔽报警(HMI上显示相关报警信息但PLC蜂鸣不报警),此处LcgAlm属于一一对应关系,为后期做占位符做准备。
ST_<b>AIQBasicTitle-模拟量输入输出为基准的端口显示信息结构体
      以模拟量输入输出为基准的端口显示结构体,其中POT为程序中自动生成的模拟量端口号,MCH为程序中需要自定义的端口名称,HMI为最终显示在HMI上的结果信息。
<b>ST_DIBasicTitle-以开关量输入为基准的端口显示信息结构体
            HMI上需要显示输入端口号、端口执行机构名称,为程序上自动生成,将端口名称POT自动生成,MCH在程序中根据项目配置,HMI为最终显示的端口+执行机构名称的集合体,此处主要为做占位符使用。如:5-DI3.A,代表第5个电箱第3个输入模块的第10个点位)MCH(端口执行机构名称Mechanism,最多24个宽字符串,如:急停按钮)HMI(表示HMI上显示的名称,为Port+Mechanism多长度36宽字符串,如:5-DI3.A/急停按钮),主要用于占位符使用;
<b>ST_DQBasicTitle-以开关量输出为基准的端口显示信息结构体
      输出显示信息,需要在ST_DIBasicTile的基础上,还需要链接输出端口打开/关闭时对应的检测信号及报警信息,因此新增SHTOPNMES三个成员,SHT(端口对应的关闭位检测信号的输入端口号名称Shut,最多长度10,如:5-DI1.0)OPN(端口对应的打开位检测信号的输入端口号名称Open,最多长度10,如:5-DI1.1)MES(端口报警消息Messeage,最多长度160宽字符串,如:5-DQ1.0升降气缸关闭位信号5-DI1.0异常),主要用于占位符使用;
<b>ST_AIQBasicNAME-模拟量为基准的端口命名信息结构体
            NAME输入端口命名结构体,对ST_AIQBasicTitle实例化,命名为NAME,实现输入输出信号命名的统一化,成员的差异化;
<b>ST_DIBasicNAME-以开关量输入为基准的端口命名信息结构体
            NAME输入端口命名结构体,对ST_DIBasicTitle实例化,命名为NAME,实现输入输出信号命名的统一化,成员的差异化;
<b>ST_DQBasicNAME-以开关量输出为基准的端口命名信息结构体
            NAME输出端口命名结构体,对ST_DQBasicTitle实例化,命名为NAME,实现输入输出信号命名的统一化,成员的差异化;以上两个结构体,将输入输出的端口命名统一化,但内部成员有差异化,为端口定义做基础;
<b>ST_AIQPool-模拟量输入输出汇总信息结构体
      模拟量输入输出汇总信息结构体,继承自ST_AIQBasicName,新增SIGN(端口信号,数信号),实现信号命名的统一化,信号类型的差异化;
<b>ST_DIPool-开关量输入汇总信息结构体
      开关量输入端口汇总信息结构体,继承自ST_DIBasicName,新增SIGN(端口信号,位信号),实现信号命名的统一化,信号类型的差异化;
<b>ST_DQPool-开关量输出汇总信息结构体
      开关量输出端口汇总信息结构体,继承自ST_DQBasicName,新增SIGN(端口信号,位信号)CODE(M代码,主要为逻辑码Lcg和报警码Alm)STAT(统计时长),实现信号命名的统一化,信号类型和成员的差异化;
<b>ST_DAIPiece-输入模块信息结构体
            DTY      输入开关量数据类型
            ATY      输入模拟量数据类型
     输入模块信息结构体,对ST_DIPool实例化,命名为DTY,对ST_AIQPool实例化,命名为ATY,实现输入输出成员命名的统一化,成员类型的差异化;
<b>ST_DAQPiece-输出模块信息结构体
            DTY输出开关量数据类型
            ATY输出模拟量数据类型
     输出模块信息结构体,对ST_DQPool实例化,命名为DTY,对ST_AIQPool实例化,命名为ATY,实现输入输出成员命名的统一化,成员类型的差异化;
<b>ST_BasiIO-基准IO信息结构体
      基准IO信息结构体,DAI(输入模块个数,编号从1开始,最大15)DAQ(输出模块个数,编号从1开始,最大15个,HMI中显示1-F),实现开关量和模拟量的输入输出类型的统一化,编号的统一化,命名的统一化、相同成员命名的统一化及类型的差异化、成员个数的差异化;
<b>KIO-IO标签
在库中添加标签KIO,在全局便签KIO中添加成员变量ECN,如下:
      在库参数中对siMaxECUNsiMaxECCNsiMaxDAIMsiMaxDAQMiMaxAxsNoiMaxUAINo进行配置;
        其中siMaxECUN(控制单元数,默认0开始)siMaxECCN(控制系统所含电箱数、编号1开始,最大127)siMaxDAIM(电箱中所含最多输入模块,编号1开始,最大15)siMaxDAQM(电箱中所含最多输出模块,编号1开始,最大15)iMaxAxsNo(控制单元轴最大编号,编号0开始)iMaxUAINo(控制单元模拟量输入最大编号、编号0开始),此六项必须根据项目进行配置,自动生成IO信息
        系统默认生成的是单单元控制系统,若需要生成多单元控制系统,请对库参数siMaxECUN进行设置。其中一级标题为电箱号,二级标题为输入/输出模块编号,三级标题为模拟量/开关量类型、四级标题为信号/命名/M代码/统计时长信息,五级为四级标题的具体编号信息。

如下图,单控制单元,16点输入16点输出,4点模拟量输入的项目,IO生成如下:
再下一级的表现形式如下:

      如此,项目中结合库,对库参数进行,就可以得到自己所需的IO配置表。其中的NAME为占位符使用,STAT为统计时长,SIGN为信号,CODE为M代码,具体应用后期会介绍,敬请关注。

</b></b></b></b></b></b></b></b></b></b></b></b></b></b>

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码