EcoStruxure Geo SCADA Expert Forum
Schneider Electric support forum about installation, configuration, integration and troubleshooting of EcoStruxure Geo SCADA Expert (ClearSCADA, ViewX, WebX).
Link copied. Please paste this link to share this article on your social media post.
Posted: 2024-01-18 12:20 PM
Hello Community!
I am trying to insert data in an opc analog variable but keep getting the following error messages:
System.ArgumentException: Value is an unsupported type.
ClearScada.Client.MethodException: The object '08-OPC_PMAC.Caudal_M0005_1' does not have a method named 'CurrentValue'.
If I try with an example variable there is no problem.
Is it possible to insert data in any other type of variable?
regards,
HC
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2024-01-21 08:28 PM
Technically CurrentValue the property is writeable on each point type, however for non-internal analogues/digitals the request will be translated into a control request, so the request may or may not work depending on the actual point type or the current configuration of the point object, such as if controls are even enabled. It is a useful trick to save you wondering if a control is inherent within the point or is attached as an aggregate for that point type, just write to the CurrentValue property instead and let the database worry how to handle it.
CurrentValue the method only exists on internal analogues/digitals, so if they're using .NET API's InvokeMethod then yeah that'll fail.
Given the error message my guess is they are trying to invoke the CurrentValue method on an OPC point which will be the problem, if they change it to instead write to the CurrentValue property and ensure the point is configured as a control it should work.
I'll also add into the mix that depending on what you mean by "insert data" you may also want to look into something like LoadRecord/LoadRecords method on CHistory. That will also you to insert data into the historian (CDBHistoric) for any point with historic enabled, should allow you to do more data quickly with a bit more control over the columns, but also not trigger a "point update" so no controls sent/no on-input logic triggered/no update to the current value/timestamp which depending on what your objectives are may be a good thing, or may not be helpful in the slightest.
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2024-01-19 08:12 PM
Only Internal Points support directly writing to their CurrentValue property, which internally just performs a Control action.
For ALL other point types, you will need to use the Control aggregates, and methods on that to allow for the value to be written back to the source.
That also means that you need to enable the Control 'permissions', and configure things like the control ranges correctly (along with the right data type for the control attributes if applicable for the point type... i.e. DNP3)
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2024-01-21 08:28 PM
Technically CurrentValue the property is writeable on each point type, however for non-internal analogues/digitals the request will be translated into a control request, so the request may or may not work depending on the actual point type or the current configuration of the point object, such as if controls are even enabled. It is a useful trick to save you wondering if a control is inherent within the point or is attached as an aggregate for that point type, just write to the CurrentValue property instead and let the database worry how to handle it.
CurrentValue the method only exists on internal analogues/digitals, so if they're using .NET API's InvokeMethod then yeah that'll fail.
Given the error message my guess is they are trying to invoke the CurrentValue method on an OPC point which will be the problem, if they change it to instead write to the CurrentValue property and ensure the point is configured as a control it should work.
I'll also add into the mix that depending on what you mean by "insert data" you may also want to look into something like LoadRecord/LoadRecords method on CHistory. That will also you to insert data into the historian (CDBHistoric) for any point with historic enabled, should allow you to do more data quickly with a bit more control over the columns, but also not trigger a "point update" so no controls sent/no on-input logic triggered/no update to the current value/timestamp which depending on what your objectives are may be a good thing, or may not be helpful in the slightest.
Link copied. Please paste this link to share this article on your social media post.
Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.