Quantcast
Channel: GE Intelligent Platforms e-Forum
Viewing all 2516 articles
Browse latest View live

EDA with VB.Net

$
0
0
We have a program that transfers data from iFIX to another system. The other system is not in iFIX, only way to talk to the other system is via TCP connection using their proprietary protocol. I wrote a program many years ago in VB6 that pulls the data from iFIX and sends it to the other system and vice versa. Since VB6 is obsolete, I want to update the program a .Net version.

I have all of the data types updated to the .NET equivalents. The define_group and define_ntf both work correct. eda_get_ascii works correctly, but eda_get_float does not.

I have created the below as an example to show the problem I'm running into. I can convert it to C# if that's easier to work with.
The red is the section I'm having trouble with. Everything looks correct to me, but it keeps giving error 8700

Can you take a look and let me know what I'm missing? I'm sure it's simple.


Module iFIX_Data
'Is FIX running
Private Declare Function FixIsFixRunning Lib "fixtools.dll" Alias "FixIsFixRunning@0" () As Int32

' Note define_group returns (VB6 Long, .NET Int32)
Private Declare Function eda_define_group Lib "vdba.dll" (ByVal Count As Int16, ByVal Detect As Int16) As Int32
Private Declare Sub eda_delete_group Lib "vdba.dll" (ByVal Handle As Int32)

' You should always pass 0 for vsp
Private Declare Function eda_define_ntf% Lib "vdba.dll" (ByVal Handle As Int32, ByVal enode As String, ByVal etag As String, ByVal efield As String, ByVal vsp As Int32)
Private Declare Sub eda_delete_ntf Lib "vdba.dll" (ByVal Handle As Int32, ByVal ntf As Int32)

Private Declare Sub eda_lookup Lib "vdba.dll" (ByVal Handle As Int32)
Private Declare Sub eda_wait Lib "vdba.dll" (ByVal Handle As Int32)
Private Declare Sub eda_read Lib "vdba.dll" (ByVal Handle As Int32)
Private Declare Sub eda_write Lib "vdba.dll" (ByVal Handle As Int32)
Private Declare Function eda_write1 Lib "vdba.dll" (ByVal Handle As Int32, ByVal ntf As Int32) As Int16

'Errors
Private Declare Function eda_get_error Lib "vdba.dll" (ByVal Handle As Int32, ByVal ntf As Int32) As Int16
Private Declare Function NlsGetText Lib "fixtools.dll" Alias "NlsGetText@12" (ByVal ErrCode As Int32, ByVal MsgString As String, ByVal MaxLength As Int32) As Int32

'ASCII data
Private Declare Function eda_get_ascii Lib "vdba.dll" (ByVal Handle As Int32, ByVal ntf As Int32, ByVal Value As String, ByVal MaxLen As Int16) As Int16
Private Declare Function eda_set_ascii Lib "vdba.dll" (ByVal Handle As Int32, ByVal ntf As Int32, ByVal Value As String) As Int16

'Float data
Private Declare Function eda_get_float Lib "vdba.dll" (ByVal Handle As Int32, ByVal ntf As Int32, ByVal Value As Single) As Int16
Private Declare Function eda_set_float Lib "vdba.dll" (ByVal Handle As Int32, ByVal ntf As Int32, ByVal Value As Single) As Int16

Public Sub GetDataFromIFIX()
'Create new group
Dim rGroupID As Int32 : rGroupID = eda_define_group(1, 0)

'Add a String and Number point to the group
Dim rPointID_String As Int32 : rPointID_String = eda_define_ntf(rGroupID, "SHE01", "LG_1_MATERIAL", "A_DESC", 0)
Dim rPointID_Number As Int32 : rPointID_Number = eda_define_ntf(rGroupID, "SHE01", "LG_1_LAST_WEIGHT", "F_CV", 0)



'Check if tags actually exist
Call eda_lookup(rGroupID)
Call eda_wait(rGroupID)

'Is the string tag ok?
Dim rErrNum_String As Short : rErrNum_String = eda_get_error(rGroupID, rPointID_String)
MessageBox.Show("Type: String" & vbCrLf & "ErrNum: " & rErrNum_String.ToString & vbCrLf & "ErrStr: " & GetErrorText(rErrNum_String))
'rErrNum_String returns 0, indicating everything is good.

'Is the string tag ok?
Dim rErrNum_Number As Short : rErrNum_Number = eda_get_error(rGroupID, rPointID_Number)
MessageBox.Show("Type: Number" & vbCrLf & "ErrNum: " & rErrNum_Number.ToString & vbCrLf & "ErrStr: " & GetErrorText(rErrNum_Number))
'rErrNum_Number returns 0, indicating everything is good.



'Let's Read the tags and display the data
Call eda_read(rGroupID)
Call eda_wait(rGroupID)

Dim rValue_String As String = New String(" ", 256)
rErrNum_String = eda_get_ascii(rGroupID, rPointID_String, rValue_String, 79)
MessageBox.Show("Type: String" & vbCrLf & "ErrNum: " & rErrNum_String.ToString & vbCrLf & "ErrStr: " & GetErrorText(rErrNum_String) & vbCrLf & "Value: " & Trim(Replace(rValue_String, Chr(0), "")))
'rErrNum_String returns 0, indicating everything is good. Value from iFIX is displayed

Dim rValue_Number As Single = 0
rErrNum_Number = eda_get_float(rGroupID, rPointID_Number, rValue_Number)
MessageBox.Show("Type: Number" & vbCrLf & "ErrNum: " & rErrNum_Number.ToString & vbCrLf & "ErrStr: " & GetErrorText(rErrNum_Number) & vbCrLf & "Value: " & rValue_Number.ToString)
'rErrNum_Number returns 8700 (Bad parameter in function call)

Call eda_delete_group(rGroupID)
End Sub

Private Function GetErrorText(ByVal zErrNum As Int32) As String
If zErrNum = 0 Then
Return "OK"
Else
Dim rErrString As String = New String(" ", 256)
Call NlsGetText(zErrNum, rErrString, 79)
Return Trim(Replace(rErrString, Chr(0), ""))
End If
End Function
End Module

iFIX 5.8 and PLCSim

$
0
0
Hello everyone!

Currently I restored a project from another PC and use iFIX in demo mode.
In this project, I use OPCDriver to communicate with a Siemens 317 2PN/DP PLC.
So I started PLCSim, loaded the S7 project in it and then started iFIX but there's not communication (the variables' values stay ???????).
I also used NettoPLCSim but it didn't solve the problem.
So my question it's simple: how to communicate between PLCSim and iFIX?Is the iFix demo mode prevents from this communciation?

Eleminate all jpgCommFault from iFix pictures

$
0
0
Hello everyone,

I'm quite new here and I joined this forum just to ask about one question. how can I remove all jpgCommFault from iFix pictures. meaning that I want to run the iFix software without any errors of communication (grey areas or red circles).

So I want to have a tool, software, script or any other solution that can delete these elements called jpgCommFault from all the pictures automatically.

currently I use a tool that is imported as a toolbar into iFix in designer mode but this tool is very poorly made and we aren't able to edit this tool and I don't know who made it and it has a lot of bugs and it freezes all the time. this tool called CommErrorDisable.tbx

I really appreciate if you guys can help and thanks in advance.

BR

Problem Upgrading PPS CIMPLICITY Alarms from 1.6 to 2.6

$
0
0
I have PPS 1.6 with Cimplicity. I upgrade to PPS 2.6.
We are having problems with alarming in PPS .
We are using PPS 2.6 with 4 controllers (3 RX3i, 1 Rx7i). We are testing with one Rx3i Controller, but when we download the Project and start cimplicity Project we saw that in the Alarm Viewer (from cimplicity) shows several alarms with diferente time of generate, when we try to acknowledge this alarms, they doens't acknowledge, continues in alarm state, the only way to acknowledge the alarm is to force to re-alarm the pps block in the logic, but it is not a good procedure to do every time that we start the PLC, why is the Project generating this alarms? why the time of generation is different (sometimes shows 3 moths before the actual time?. As data, it show correctly.
I have several problems with the alarms:
- I can't ACK the alarms in the Cimplicity Alarm Viewer
- I can't DELETE the alarms in the Cimplicity Alarm Viewer
- If I force to re-alarm, it show the change of state but it doesn't disappear from the alarm viewer (even when its reset)

Radmin with iFIx issue

$
0
0
Hi,

I have recently installed Radmin remote control software on a PC which is running iFix v5.1.

The iFix workspace covers the entire screen so that no user can activate the PC's desktop.

When i connect using Radmin to the PC the iFix workspace screen flashes and displays an adjustable window instead of the previous full screen view. This allows any user to re size the iFix window and access the desktop.

The only way to undo this screen adjustment is to close the workspace and open it again, where it opens in full screen blocking the desktop.

However when i disconnect the Radmin application it adjusts the workspace again allowing the user access the desktop.

Any help on this would be greatly appreciated. Perhaps another remote software would work or some setting in iFix?

IGS Load balancing

$
0
0
Hello to all,
this is our first IGS+iFix project, so there are bumps on the road here and there.
After reading documentation an KBs, I am not sure on best way to do load balancing in IGS driver...

I am using 2 PLCs. In IGS, I have 2 channels (one for each PLC) and 5 devices per channel.
Since we have 40000 tags (dynamic addressing), things get slow after a while.
The problem is that I didn't use "@ms" option in tag addressing, so everything is being polled at 100ms.
After forcing different poll rates on IGS devices, everything works good.
So, I'm guessing...if I make many devices per channel and force poll rate on each device, everything should work fine.

But KB states that bottleneck is the channel itself, rather than device.
I found that every device has it's own thread for network activity, so stating that channel is the bottleneck is not true, rather the device is the bottleneck.

Does IGS Siemens TCP/IP driver support 100 devices per channel? If it does, is it wise to do so?
My current configuration has too many tags in one device, so I presume that making many devices in one channel is sufficient, rather that making many channels.

I can make (1 channel=1 device)x100, but it doesn't make sense to me...

Force clients to disconnect/move SCADA servers

$
0
0
Is there a clean way to force clients to "move" to a different SCADA without the use of NSD tags?

We no longer can utilize Enhanced Redundancy in our setup and the only way I have found to make clients "move" is to shut down iFIX on a certain node...

Is there a different way to achieve this (force clients to a different SCADA server)?

Any pointers are helpful!

iFIX INTERNAL ERROR

$
0
0
Hello everyone,

I have the following error message:
"Can not start iFIX. Please identify the program which is still accessing iFIX system resources and shut it down before restarting.
C:\Program Files (x86)\Proficy\Proficy iFIX\fix.exe"

I have followed this KB:
http://support.ge-ip.com/support/ind...f3e6be0b0076a0

So I have killed ALL the processes related to iFIX (OPC driver, WSACTASK.exe,...).
But the message still appears when I want to launch iFIX.
Is there a solution for this, instead of restart the computer?

Error 1160: "Service Libary is not loaded" only on iFix Client's

$
0
0
Hi Everybody,

I am using a iFix 5.5 System with SP2 and Workspace Sim 15 installed on all machines (servers and clients).

There are four (4) client connected to two (2) SCADA Servers, which are configured as a redundancy partner via a hotlink.

I get the message "Error 1160 <Tagname>: Driver 3A Service Libary is not loaded" only on the SCADA Clients after a while. Not on the Server !

- Reboot does not help.
- A checked the SCU as well on the Servers and on the clients
an could not found any problem (as far I can see).
- Network was checked, nothing found.
- "Driver Files" <NODENAME>.IGS, <NODENAME>.SIM, <NODENAME>.SM2 in
the PDB folder on the SCADA Server are existing.

Up to now one redundancy partners is shutdown and not running, but
this should be a possible situation.

Any help would be nice.

R.

CimGetEMEvent().PointEvent()

$
0
0
Hello,

I have the event that is fired by point change event. That point is an array of INTs.
Any change of any element of that array starts that event without a problem.
My question is: how can I get the index of the element that's changed ?
PointEvent().Id returns just the point name, but not an index.

Thanks

Move Historian Data to PLC

$
0
0
Hi. We are working on a project to move data from PlantApps to the PLC. The contractor providing PlantApps says this has been done and they are not well versed outside of PlantApps. We use Historian to collect and trend data so that's where our knowledge stops.

The one interface in common with the PLC and PlantApps is the Historian. How can the Historian be leveraged to send data through an OPC server to a PLC? Or is this even possible with the OPC collector?

--
jmmooney

redundant collectors status for cimplicity shows both standby

$
0
0
i have historian 5.5 SIM23 on collectors side as well in historian server side

redundant collectors status for cimplicity redundant server shows both standby !.

Backup collectors are showing correctly as vice versa for server 1 &2

do we need collector status enabled ( for unkown) or failover watchdog tags

Regards
Subrahmanya

iFIX doesn't shutdown...

$
0
0
Hi everyone!

I'm using iFIX in demo mode.
Here are the tasks registered in Task configurations:
  • IOCNTRL(background mode)
  • WSACTASK(background mode)
  • SUMQDEL(background mode)
  • WORKSPACE (normal mode)
  • FIXBACKGROUNDSERVER(background mode)

The problem is when I want to close iFIX using Options->Shutdown iFIX in the Proficy iFIX Startup window, it only closes the workspace but doesn't do nothing more.
If I close (abruptly) iFIX Windows Task Manager and then I want to restart iFIX, I have an internal error:
"Can not start iIFX. Please identify the program which is still accessing iFIX system resources and shut it down before restarting.
C:\Program Files(x86)\Proficy\Proficy iFIX\fix.exe"

It's been fun...

$
0
0
And maybe we will run into each other again on the other side.
This Forum is going away shortly and I really dislike it's replacement so I will not be spending much time there. :(

I hope that you all make it even better than this archaic old-fashioned BBS was. :D

It's been good, see you all later.

$
0
0
And maybe we will run into each other again on the other side.
This Forum is going away shortly and I really dislike it's replacement so I will not be spending much time there. :(

I hope that you all make it even better than this archaic old-fashioned BBS was. :D

It's been a riot!

$
0
0
And maybe we will run into each other again on the other side.
This Forum is going away shortly and I really dislike it's replacement so I will not be spending much time there. :(

I hope that you all make it even better than this archaic old-fashioned BBS was. :D

GE has a better idea...

Modbus TCP Slave Error

$
0
0
When attempting to connect to a Modbus master device, the MTCPSI_RP process fails and shuts itself down. I see only this error in the Status Log:

Error opening TCP/IP channel: 110

The process will connect with a local Modbus master emulator, but fails using a Modbus device (or emulator) that requires a TCP connection to another machine.

I can get a Modbus slave emulator on the Cimplicity machine to connect to a Modbus master device, though, so it's not a problem with the network.

Anybody ever dealt with this problem before?

:confused:

Report Builder Startup

$
0
0
Using ifix 5.8 and report builder
the server for report builder needs shutdown before starting ifix, so I created
a startup bat file to do that.
However the server then needs restarted after ifix is up and running
I have tried several things such as a bat file in the SCU but nothing seems to be working
correctly. Any one have a solution who is using report builder
Thanks

Help with datalink by VBA

$
0
0
Hi.
I'll try to explain my issue. I created a popup that works for two different equipments. When I open this popup by clicking upon an equipment, the datalink is visible and it is linked to a AR type source in my DB. When I open the popup for other equipment, this datalink is not necessary and I can hide it. I used datalink.visible = false to hide it, but the connection to a inexistent source is still alive (yes, the other equip has no this AR type tag). How can i cancel this link?
Thanks in advance.

SRTP and fragmented addresses

$
0
0
Hi,

I am setting up a red lion DSP and I wanted to get some insight on the burden that may be put on the CPU. I have a 90-30 rack currently. I want to poll it as an SRTP slave. I have roughly 2000 line items on bits and words, I can further seek for opportunities to identify compacted address space but not sure if its worth the time investment. The program is 3rd party and was not designed with this application in mind. Any thoughts on performance impacts? I suppose if Im gonna take a 20% or more cpu performance hit vs <10 in order to compact the data for SRTP transfer then it would be less optimistic or perhaps I should be thinking of it in terms of scan time.
Viewing all 2516 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>