基于MX Component的PC与PLC以太网通讯方法研究
0 引言
MX Component是三菱电机自动化公司发布的第三方通信软件包,可以通过简单方法实现从计算机至可编程控制器的通信[1]。
MX Component是一个工具,通过该工具无需在意协议,可简单实现从计算机到PLC、运动控制器等通信处理的Active X控件、.NET控件库。使用MX Component后,串口通信和以太网通信的程序开发变得异常简单[2]。MX Component主要具有以下特点:①支持丰富的至可编程控制器的通信路径;②大幅度地提高用户的开发效率;③可以对通信设置的内容进行保存、读取;④具有软元件监视功能;⑤可以访问特殊功能模块的缓冲存储器;⑥可以多线程通信;⑦支持丰富多彩的编程语言(Visual Basic、Visual 、Visual C#、VBScript及VBA)。
即使人真是我母亲杀的,当时她很可能受到了生命威胁,是不是属正当防卫?李峤汝说,我想让你们提早介入,新的《诉讼法》不是说律师可以在侦查阶段就介入吗?
本文主要对基于MX Component的PC与PLC以太网通讯方法进行研究。
1 MX Component设置
1.1 设置逻辑站号
逻辑站号可以设置的范围为0~1 023,逻辑站号不可重复使用。打开Communication Setup Utility软件,选择”Target Setting”选项卡,点击”Wizard”按钮,设置Logical station number。
1.2 设置PC侧I/F
在“PC side I/F”中选择“Ethernet board”,使用以太网通信、网关功能通信;在“Connect module”中选择“CPU module”;在“Protocol”中选择“TCP”。
1.3 设置PLC侧I/F
首先为PLC设定固定IP,将PLC通过网线连入PC所在的局域网中,其次为PLC接通电源,然后设置相关参数:“PLC side I/F”中选择“CPU module”,Host(IP Address)通过“Find CPU(Buitt-in Ethernet port) on network”按钮浏览能使用的终端IP,如果没有浏览到可以直接写入为PLC设置的固定IP。
秀容月明转入一条巷子,巷尾,有家小酒店,蜡烛明晃晃的,竟有六七人在喝酒,一人说道:“这桂花酒你们尽管喝,不喝,明天也便宜了胡人。”
1.4 设置站类型
Station type选择“Host station”。
1.5 设置CPU类型
CPU type选择“Q03UDE”(此CPU类型可根据实际使用CPU类型进行设置),Multiple CPU 选择“None”。
仿佛是接到死刑判决书,黑暗中,大家写起来遗书。我也断断续续写起了遗书:“我最牵挂的是如果儿子还能生还,就教他忘记失母之痛,忘记这段惨剧。我要说的是,我现在没有思考,没有痛,只有那撕心裂肺无尽的牵挂!我需要你找个可以分担和照顾你一生的好人,她若能以平常心、有爱心待我儿子、待你好就行!因为我希望看到你能幸福!能活着真好!”
1.6 设置目标注释
在“Comment”写入注释内容,完成设置,如图1所示。
图1 参数设置
1.7 测试
完成设置后,测试连接,结果如图2所示。
2 VB.NET相关函数
本节主要介绍基于VB.NET的编程方法。
2.1 编程前期准备
(1) 添加引用。在VB.NET程序工程引用中添加ActUtlTypeLib。
(2) 定义全局变量:
本次研究结果显示:观察组体征改善时间与住院时间均少于对照组患者,这说明对盐酸氨溴索联合布地奈德患儿进行护理干预有助于提升改善患儿生命体征,缩短患儿住院时间,值得临床借鉴与推广。
(3) 实例化ActUtlTypeLib.ActUtlType对象,代码如下所示:
comUtlType = New ActUtlTypeLib.ActUtlType
日历翻过一九八零年代,来照相馆的顾客,拍照的少了,多数是取出傻瓜相机里拍完的一卷彩色胶卷,要求冲印出来。
AddHandler comUtlType.OnDeviceStatus, AddressOf comUtlType_OnDeviceStatus
(4) 设置逻辑端口,此逻辑端口需要和本文1.1中设置的MX Component逻辑站号保持一致,才能保证通信的顺利进行。设置逻辑端口代码如下所示:
“暖气病”一般最先发生在肺系:屋子很热,外边很冷的时候,人体因为过度保温容易出现嘴唇干裂、鼻咽干燥、干咳声嘶。干燥温暖的环境无异于给病菌的生长提供了温床,当空气湿度低于40%的时候,感冒病毒和其他能引发感染的细菌繁殖速度会加快,随着空气中的灰尘扩散引发疾病。
comUtlType.ActLogicalStationNumber = mLogicalStationNumber
(5) 打开ult服务:
Public comUtlType As ActUtlTypeLib.ActUtlType
iReturnCode = comUtlType.Open()
图2 测试结果
2.2 软元件随机读取
此功能可以利用软件在PLC上注册事件,然后调用事件对PLC软元件进行监控,当软元件的值发生变化时,自动调用事件处理函数进行事件处理。注册事件能够实现PLC主动上传信息、上位机及时捕捉到PLC状态变化信息并进行处理,减少PC机因采用轮询方式造成的CPU占用。注册事件代码如下所示:
Private Function BitRead(ByVal szDeviceName As String(), ByRef iReturnCode As Integer) As Short()
Dim iNumberOfDeviceName As Integer
strDeviceName = String.Join(vbLf, szDeviceName)
iReturnCde = 1
strDeviceName = String.Join(vbLf, szDeviceName)
iNumberOfDeviceName = szDeviceName.Length
Dim sharrDeviceValue(iNumberOfDeviceName - 1) As Short '软元件数
iReturnCode = comUtlType.ReadDeviceRandom2(strDeviceName,iNumberOfDeviceName, sharrDeviceValue(0))
Return sharrDeviceValue
Private Function DataRead(ByVal szDeviceName As String, ByVal iNumberOfDeviceName As Integer, ByRef iReturnCode As Integer) As
2.3 软元件随机写入
此功能通过指定所需写入的软元件名、写入的点数及相应软元件的值进行软元件的随机写入。软元件随机写入代码如下:
Private Function BitWrite(ByVal szDeviceName As String(), ByVal sharrDeviceValue As Short()) As Integer
以笔者所在省市为例,植保无人机购买主体相对分散,且多集中于合作社、农机大户和农场等,并非专业性植保组织。而在生产企业培训期间,该类农户虽取得相应的合格证书,但因经验少、作业效率低等问题,使之难以掌握相关灾害防控能力,更谈不上无人机在农业植保中的充分应用。
Dim iReturnCode As Integer = 1
Dim iNumberOfDeviceName As Integer
Dim strDeviceName As String
iNumberOfDeviceName = szDeviceName.Length
Dim strDeviceName As String
iReturnCode = comUtlType.WriteDeviceRandom2 (strDeviceName, iNumberOfDeviceName, sharrDeviceValue(0))
Return iReturnCode
End Function
2.4 软元件批量读取
此功能通过指定软元件名和读取的点数进行软元件值的批量读取。软元件批量读取代码如下:
End Function
Short()
Dim sharrDeviceValue(iNumberOfDeviceName - 1) As Short '软元件数
突破重难点后,我在管理端推送“当堂检测”(选择题进阶版),给学生7分钟进行当堂训练。平台主界面会实时显示学生答题进度。学生完成提交后,与“预习检测反馈”环节类似,我及时推送答案和解析,让做对的学生分享解题思路,体验成功的喜悦。对于仍不理解的学生,在课后可进一步提问答疑。在此不再累述。
iReturnCode = comUtlType.ReadDeviceBlock2(szDeviceName, iNumberOfDeviceName, sharrDeviceValue(0))
Return sharrDeviceValue
End Function
2.5 软元件批量写入
此功能通过给出软元件名、写入的点数及相应软元件的值进行软元件的批量写入。软元件批量写入代码如下:
Private Function DataWrite(ByVal szDeviceName As String, ByVal sharrDeviceValue As Short()) As Integer
Dim iReturnCode As Integer = 1
Dim iNumberOfDeviceName As Integer
iNumberOfDeviceName =harrDeviceValue.Length
对发电机整体在安装弹性支撑为12 kN/mm的弹性支撑时进行模态仿真分析,弹性支撑主要参数如表7和表8所示,前9阶振动频率如表9所示,其中前9阶静态刚度时振型如图4所示(由于前9阶振型一致只是频率不一致,动态刚度振型图在此省略)。
iReturnCode =comUtlType.WriteDeviceBlock2( szDeviceName, iNumberOfDeviceName, sharrDeviceValue(0))
Return iReturnCode
Dim lData(0) As Integer
End Function
2.6 注册事件应用
此功能通过指定所需读取的所有软元件名和读取的点数进行软元件值的随机读取。软元件随机读取代码如下:
综合上述两种观点,依据《刑法修正案(八)》对危险驾驶罪的规定,笔者认为,醉酒驾驶行为属于抽象危险犯。《刑法修正案(八)》规定:“道路上醉酒驾驶机动车的处拘役,并处罚金”。首先,当行为人在酒后或者醉酒的情况下,在道路上驾驶机动车行驶的行为本身对公共安全造成很大的隐患,其行为的危险性在于其行为本身,而非造成实质的危害后果,此行为本身构成犯罪。其次,抽象危险犯同具体危险犯相比,对法益的要求程度较低,即只要法益受到较低的侵害时犯罪就成立。立法者本意只是为了防止醉酒驾驶这种危险情况的存在,更好地保护人民生命和财产安全,因此,醉酒型危险驾驶罪应当定性为抽象危险犯。
(1) 打开ult服务:
comUtlType.Open()
(2) 调用注册事件:
由表2可知,与对照相比,早稻和晚稻期间,施加腐殖质、零价铁和复合调理剂均显著提高了稻米的产量。与对照相比,施加腐殖质,早稻和晚稻分别增产 533 kg·hm-2和 934 kg·hm-2,增幅为 8.4%和 18.3%;施加零价铁,早稻和晚稻分别增产 700 kg·hm-2和 300 kg·hm-2,增幅为 11.4%和 12.1%;施加复合调理剂,早稻和晚稻分别增产 867 kg·hm-2和1367 kg·hm-2,增幅为13.9%和26.8%。这可能与施加调理剂改善土壤性质、增强土壤肥力有关。
lData(0) = 1
comUtlType.EntryDeviceStatus("M0", 1, 1, lData)
上述设置中当“M0”状态发生变化时,将触发事件处理函数。
(3) 事件处理函数:
Private Sub comUtlType_OnDeviceStatus(ByVal szDevice As String, ByVal iData As Integer, ByVal iReturnCode As Integer)
HandleFunction() '自定义处理函数
End Sub
“促”即是“促考核”“促机制”“促建设”。肇庆海事局成功推动市政府将渡口渡船安全管理纳入安全生产责任制考核;先后推动市政府印发《肇庆市险情应急预案》《肇庆市处置船舶污染事故应急预案》《关于加强自用船安全管理的通知》等文件;推动将“智慧西江”建设作为智慧管理和服务相关的重点工程纳入到《肇庆市智慧城市建设顶层设计规划》;推动市政府将桥梁智能防撞预警系统建设纳入市2018年十大惠民实事。2018年德庆县政府出资35万元打造县级溢油应急设备库,成为广东省内河首个县级财政建设的设备库。
(4) 关闭ult服务:
comUtlType.Close()
盈利是企业的重要经营目标,是企业生存和发展的物质基础,它不仅关系到企业所有者的投资报酬,也是企业偿还债务的一个重要保障。反映公司盈利能力的指标很多,通常使用的主要有销售净利率、销售毛利率、资产净利率、净资产收益率等。
2.7 特别说明
在软元件随机读取、软元件随机写入、软元件批量读取、软元件批量写入的过程中返回代码iReturnCode为非0x0时,需要重新启动ult服务。
3 结语
本文介绍了MX Component在使用过程中的设置方法和几种基于VB.NET编程软件的常用函数编程方法,为将PLC控制的生产设备连接到上位机提供了一种简单方法。
参考文献:
[1] 程晓鹏,刘园,任素利,等.基于MX Component的PC—PLC通讯设计[J].福建电脑,2014(3):34-35.
[2] 三菱电机自动化(中国)有限公司.MX Component软件介绍 [CP/OL].2015-04-10/2016-09-02.http://cn.mitsubishielectric.com/fa/zh/download/dwn_idx_softwareDetail.asp?sid=45.